我最近转而使用 Symfony2 PHP 框架,并希望从一开始就包含 html5boilerplate 的所有优点,但是在合并两者的 .htaccess 文件时遇到了一些问题。
前三名来自样板;从 www.example.com 重定向到 example.com,从 example.com/test 重定向到 example.com/test/,并限制访问任何以 . (例如,.git)。
最后是 Symfony2 对前端 Controller 的重写。如果没有其他重定向发生,我希望可以访问它(因此 example.com/hello/应该到达它)。
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ /$1/ [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteRule "(^|/)\." - [F]
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
如果最后一次重写被评论,Apache 返回一个 400 Bad Request,我不太清楚为什么。重定向设置为外部 (R=301) 所以它应该重新评估,并进入应用程序.php 一个。
重写也已设置为开启。
任何建议都很好,没有太多的重写增益 =(
最佳答案
我尝试了您的配置并且没有问题到达我的 Symfony2 设置。
尝试将您的请求重定向到 app_dev.php
而不是 app.php
以便您可以跟踪真正的错误。
还是我误解了你的问题?
关于apache - 使用 Symfony2 和 html5boilerplate 重定向规则的 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182318/