Правило перенаправления не соблюдается

Я настроил следующие файлы конфигурации для своего сайта Apache и включил перезапись модов, но у меня возникли проблемы с запуском правила. Я вполне уверен, что это пропущенная конфигурация, но я не уверен, где она лежит. Я экспериментировал с разными конфигурациями, но не нашел подходящей.

Мой файл apache2.conf содержит следующее

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride FileInfo
    Require all granted
</Directory>

Мой файл 000-default.conf содержит следующее

<VirtualHost *:80>
    DocumentRoot /var/www/html

    RewriteEngine On
    RewriteRule ^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ /Baz/$1/Bar/$2/json

</VirtualHost>

Если я пойду на: http://localhost/Foo/sample/data

Ошибка в логах:

 File does not exist: /var/www/html/Foo/sample/data

Однако, если я вручную перехожу к /Baz/sample/Bar/data/json, я получаю 200.

Обновлено: регулярное выражение было неправильным. исправлено, но проблема все еще возникает.

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, что в ваших группах отсутствует скобка:

это:

^/Foo/(A-Za-z0-9]+)/(A-Za-z0-9]+)$

должно быть:

^/Foo/([A-Za-z0-9]+)/([A-Za-z0-9]+)$

Этот тип ошибки обычно заставляет сервер жаловаться на неправильную конфигурацию. Логи сервера проверяли?

Исправлено, но, к сожалению, та же проблема остается.

Morcalavin 30.05.2019 15:28

Я принимаю это как ответ, так как это действительно была ошибка с моей стороны. Однако последнее исправление, благодаря которому у меня все заработало, заключалось в добавлении [PT] в конце правила. Без этого он пытался обслуживать файл вместо того, чтобы отслеживать URL-адрес в правильном месте.

Morcalavin 30.05.2019 17:16

Более подробную информацию о [PT] RewriteFlag можно найти в https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_pt.

Giri 31.05.2019 08:27

Другие вопросы по теме