我的.htaccess重定向到https会产生404

时间:2016-01-22 17:14:56

标签: apache .htaccess redirect https

我希望我的网络服务器将所有http请求重定向到https。 所以我设置了我的.htaccess

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/,一切正常!

2 个答案:

答案 0 :(得分: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)

感谢Simone, 你的解决方案对我没用。

我找到了

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

适合我。