htaccess将非www重定向到www,http重定向到https

时间:2016-03-28 14:41:20

标签: .htaccess

我有类似的东西

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

工作正常,将所有docs重定向到http://www.example.com。但现在我希望它将所有example.com重定向到https://www.example.com。我试过了:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule .* https://www.example.com/$1 [R=301,L]

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

它失败了。我应该添加什么?

2 个答案:

答案 0 :(得分:0)

您可以在一个规则中执行这两种重定向:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=302,NE,L]

答案 1 :(得分:0)

使用.htaccess文件中的以下代码会自动将访问者重定向到您网站的HTTPS版本:

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

或帮助这个网站。最近我遇到的问题与修复此问题相同。 https://www.themeconfig.com/wordpress-basic-services/