Невозможно получить mod_rewrite для перезаписи URL

У меня проблема с Apache, который не хочет читать мои директивы перезаписи и фактически переписывает свои URL-адреса на основе этих директив. У меня есть условия и правила, записанные прямо в мой файл Apache httpd.conf :

<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteCond %{REQUEST_URI} Round_2
  RewriteRule ^Round_2/(.*)$ /newBuyer/desktop/$1 [R=301,L]

  RewriteCond %{REQUEST_URI} itemList
  RewriteRule ^/?(.*)/itemList/(.*)$ /newBuyer/$1/search/$2 [R=301,L]

  RewriteCond %{REQUEST_URI} eventDetail
  RewriteRule ^/?(.*)/eventDetail/(.*)$ /newBuyer/$1/event/$2 [R=301,L]

</IfModule>

Я перезагрузил apache, используя:

$ apachectl -k graceful

очищенный кеш браузера, и перенаправление не работает. Я могу заставить его работать на моем локальном экземпляре Windows Apache, но не на моем экземпляре Cent7 Apache.

Я подтвердил, что мод перезаписи загружен.

1
задан 23 September 2017 в 20:44
1 ответ

После добавления тегов каталога после IfModule между условиями и правилами я смог заставить работать перезапись URL. Вот окончательный результат работы:

<IfModule mod_rewrite.c>
        <Directory "/directory/to/designers/files/">
        RewriteEngine On

        RewriteCond %{REQUEST_URI} Round_2
        RewriteRule ^Round_2/(.*)$ /newBuyer/desktop/$1 [R=301,L]

        RewriteCond %{REQUEST_URI} itemList
        RewriteRule ^/?(.*)/itemList/(.*)$ /newBuyer/$1/search/$2 [R=301,L]

        RewriteCond %{REQUEST_URI} eventDetail
        RewriteRule ^/?(.*)/eventDetail/(.*)$ /newBuyer/$1/event/$2 [R=301,L]
        </Directory>
</IfModule>

Спасибо

1
ответ дан 3 December 2019 в 23:25

Теги

Похожие вопросы