mod_rewrite"400 Bad Request"问题

Par*_*ney 14 mod-rewrite

设置mod_rewrite时,我似乎无法通过错误请求错误.我已经尝试了一段时间,所以这就是我所拥有的.

我想要访问的网址是:

gordons.local/brewCalc
Run Code Online (Sandbox Code Playgroud)

我想看的页面是

gordons.local/index.php?page=brewCalc
Run Code Online (Sandbox Code Playgroud)

这是我的重写规则:

    RewriteEngine on
    RewriteLog /var/www/gordons.com/logs/rewrite.log
    RewriteRule ([^/]+)/?$ index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)

我使用了一个正则表达式工具和这个工具,但无论我最终得到一个页面如何:

Bad Request

Your browser sent a request that this server could not understand.
Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.2.12 (Ubuntu) Server at gordons.local Port 80
Run Code Online (Sandbox Code Playgroud)

另外,我在访问,错误或重写日志中没有获得任何信息.

编辑:我的重写规则在我的vhost文件中.(/etc/apache2/sites-available/gordons.local)

Par*_*ney 87

如果有人发现自己在这里,我的问题是在更换之前缺少前导斜线.

RewriteRule ([^/]+)/?$ index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)

本来应该

RewriteRule ([^/]+)/?$ /index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)

GRRRR ....

  • 你回到这里并添加这个解决方案的努力使我免于精神错乱.谢谢 (3认同)