2011-05-31 72 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