2016-01-22 26 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

你说得对,我把它删除了。 –