我最近开始使用 Symfony2 PHP 框架,并希望从一开始就包含 html5boilerplate 的所有功能,但是在合并两者的 .htaccess 文件时遇到了一些问题。
前三名来自样板;从 www.example.com 重定向到 example.com,从 example.com/test 重定向到 example.com/test/,并限制对任何以 . 开头的文件夹的访问。(例如,.git)。
最后是 Symfony2 对前端控制器的重写。如果没有其他重定向发生,我希望访问它(因此 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),所以它应该重新评估,并进入 app.php 之一.
重写也已设置为打开。
任何建议都会很棒,没有太多的重写buff =(