2016-01-22 35 views
0

我希望我的web服務器將所有http請求重定向到https。 所以我建立了我的.htaccess我的.htaccess重定向到https產生一個404

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

重定向似乎工作,但是當我進入_http://example.com/test/它重定向到_HTTPS://example.com/httpdocs/test/這會產生一個404錯誤。 如果我直接去_https://example.com/test/,一切正常!

回答

0

謝謝西蒙娜, 您的解決方案並不適合我。

我發現

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

爲我工作。

2

使用HTTP_HOST,不SERVER_NAME

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

https://serverfault.com/questions/570288/is-it-bad-to-redirect-http-to-https

此外,還要確保你沒有其他規則與此一個衝突。您可能希望將此作爲第一條規則(因爲它具有L標誌)。

+1

重寫模式中不需要前導斜槓。 –

+0

你說得對,我把它刪除了。 –