【发布时间】:2011-02-26 15:49:13
【问题描述】:
我正在使用 WAMPServer 2.1 运行 Windows 7 64 位。运行的 Apache 版本是 2.2.17。我正在尝试在httpd.conf 中设置一个简单的重写规则:
<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。关于问题可能是什么的任何想法?
【问题讨论】:
标签: php apache mod-rewrite wamp wampserver