Apache-2.4

無法讓 mod_rewrite 重寫 URL

  • September 23, 2017

我遇到了 Apache 不想閱讀我的重寫指令並實際上根據這些指令重寫我的 URL 的問題。我將條件和規則直接寫入我的 Apachehttpd.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 實例上執行。

我已確認已載入重寫模組。

在條件和規則之間的 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>

謝謝

引用自:https://serverfault.com/questions/874501