2011-05-31 49 views
3

我最近转移到使用Symfony2 PHP框架,并希望从一开始就包括html5boilerplate所有的迷人,但有一些问题合并.htaccess两个文件。400错误的请求与Symfony2和html5boilerplate重定向规则

前三名来自样板;从www.example.com重定向到example.com,example.com/test为example.com/test/,并限制访问任何前缀为a的文件夹。 (例如.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> 

如果最后重写被注释掉,阿帕奇返回400错误的请求,我不明白为什么..重定向设置为外部(R = 301),因此它应该重新评估,并去app.php之一。

重写也已设置为打开。

任何建议将是巨大的,没有太大的重写的buff =(

回答

2

我试着用你的配置并没有问题,达到我的Symfony2的设置。

尝试将请求重定向到app_dev.php代替app.php,所以你可以跟踪真正的错误。

还是我误解你的问题?

+1

尝试没有任何额外的html5boilerplate配置的配置,你是对的,它确实有效。认为问题与重定向分开。谢谢=)将继续寻找原因,而不是与上述做。 – domudall 2011-05-31 12:57:18

1

我不是100%肯定的问题/问题是什么,但你尝试过...

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
    RewriteRule ^(.*)$ /$1/ [R=301,L] 

    RewriteRule "(^|/)\." - [F] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ app.php [QSA,L] 
</IfModule> 
+0

已经尝试不幸的是,问题是在最后的块被放上时的请求。 400返回错误请求。认为它与整个HTTP步骤有关。 – domudall 2011-05-31 03:10:10