我在 Apache 2.2 本機開發伺服器中有一些 mod_rewrite 規則,它們運作正常。現在升級到 Apache 2.4 後,我嘗試執行簡單的 mod_rewrite 規則,但它不起作用。然而,它正在與 .htAccess 一起使用。這是路徑問題嗎?或者 Apache 2.4 中的 mod_rewrite 有所不同?有什麼建議麼?
本機開發伺服器資訊:WAMP-Server 2.5 - Windows 7 mod_rewrite 已載入並顯示在 php_info() 中
阿帕契配置: http://apaste.info/OF3
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/wamp/www"
ServerName site1.example.com
ErrorLog "logs/site1-error.log"
CustomLog "logs/site1-access.log" common
<Directory "/site1">
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
LogLevel alert rewrite:trace3
RewriteRule ^/index.html$ /welcome.html
</Directory>
</VirtualHost>
答案1
我的猜測是您指定的路徑<Directory "/site1">
不正確。您有DocumentRoot "C:/wamp/www"
,這意味著您網站的根目錄位於該目錄中。為了使用 a 應用重寫規則<Directory>
,您必須指定完整路徑:
<Directory "C:/wamp/www">
[...]
</Directory>
或者可能:
<Directory "C:/wamp/www/site1">
[...]
</Directory>
取決於您實際嘗試使用的路徑/site1
。