2

我正在尝试将用户重定向到https://www.example.com, 当用户尝试http://example.com, www.example.com,等https://example.com时。http://www.example.com

为此,我在我的.htaccess-file 中使用此代码:

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

这样做的问题是,当用户输入www.example.comorhttp://www.example.com时,用户将被重定向到https://www.www.example.com. 换句话说,它复制了 www。

我怎样才能避免这种情况?

4

2 回答 2

3

也许这会起作用:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} (?:www\.)?(.*)  [NC]
RewriteRule ^(.*) https://www.%1/$1 [R,L]
于 2013-04-04T22:33:11.863 回答
0

你有没有尝试过:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这使用 apache 来获取主机并且不依赖它进行重定向,并且还将使用 apache 保留请求的 URI。^^(无需使用任何实际匹配的内容RewriteRule

于 2013-04-04T22:29:12.043 回答