如何设置规范网址并重定向到https?

时间:2014-10-24 22:40:18

标签: .htaccess mod-rewrite

我有重定向工作的http到https,以及规范化非www网址重定向到WWW版本......好吧,等等。

http://www.domain.com重定向到https://www.domain.com

http://domain.com重定向到https://www.domain.com

https://www.domain.com加载

然而, https://domain.com无法连接(不同的浏览器提供不同的消息)。

我验证了mod_rewrite已启用。这是以下代码:

#Redirect to SSL
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}[R01,L]
#Canonicalization
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1[L,R01]

两个问题:

1。)为什么没有https://domain.com路由到https://www.domain.com

2。)我已经看到重定向的标志R = 301,但是R01意味着什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以将两者结合起来:

RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

一些事情:

  1. R01不正确,它不是一个标志,如果不是你的标志之前缺少空格就会导致500错误
  2. 您缺少一个用于分隔目标网址和标记的空间:$1[L,R01]最终会被解释为目标网址的一部分。