我使用WAMPServer 2.1運行Windows 7 64位。 Apache運行的版本是2.2.17。我試圖建立一個簡單的重寫規則在httpd.conf
:Apache mod_rewrite在WAMPServer中返回錯誤的請求
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [PT,QSA,L]
</IfModule>
我已經得到簡單的RewriteRules以前工作,沒有正則表達式,重寫的表達,等等。但是,現在看來,在此規則處於活動狀態時,如果嘗試訪問任何URL,我會收到400 Bad Request
錯誤。 Apache的日誌文件給出了這些錯誤,每當出現這種情況:
[Sat Feb 26 10:24:18 2011] [error] [client 127.0.0.1] Invalid URI in request GET /index.php HTTP/1.1
[Sat Feb 26 10:24:21 2011] [error] [client 127.0.0.1] Invalid URI in request GET/HTTP/1.1
的第一個錯誤我試着打localhost/index.php
。第二個我只是試過localhost
。
此外,即使當我有更簡單的規則工作,RewriteCond
行似乎並沒有工作:靜態現有文件,如style.css無論如何正在重新路由。
啓用RewriteLogging似乎崩潰了Apache,它似乎是一個documented issue on 64-bit machines running Windows 7。任何想法可能是什麼問題?
這似乎是問題所在。另外,我最終必須使用底部修改的重寫規則(在匹配的正則表達式中使用'/'),因爲其他模式仍然向我發送了來自瀏覽器的400個錯誤請求錯誤(並且在apache日誌)。 – Scott 2011-02-28 11:03:45