将整个站点重定向到https

时间:2013-07-15 03:35:44

标签: .htaccess

我想将整个网站重定向,包括所有子域名到https。

这会有用吗?

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

2 个答案:

答案 0 :(得分:1)

虽然您的代码可能正常运行,但我建议您使用%{HTTP_HOST}代替%{SERVER_NAME}。请理解2个变量之间的区别。 %{SERVER_NAME}是Apache配置中配置的服务器名称,但后面是HTTP请求中实时接收的域名。所以代替你的代码使用这个:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

为了排除特定子域的上述规则,请使用以下代码:

RewriteCond %{HTTP_HOST} !^sub\.domain\.com$ [NC]
RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

答案 1 :(得分:0)

是的,那会有用。

重要的是确保规则之前您可能拥有的任何路由规则,并且没有其他规则重定向到http://