Apache-2.4
無法讓 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 實例上執行。
我已確認已載入重寫模組。
在條件和規則之間的 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>
謝謝