我知道这里和那里有帖子独立解释下面的每个部分,但我发现很难让所有4个部分在根目录中的一个.htaccess中工作,到目前为止所有部分都是错误500或404。
这对于那些拥有SSL的网站非常有用,并希望避免SEO的重复内容问题。
所有请求http://domain.com都应转到http://www.domain.com(SEO)
所有请求https://domain.com都应转到https://www.domain.com(SEO)
/ checkout和/ customers应该只访问网站的https://版本;不是http://(显然是安全性)
https://所有其他目录(不是/ checkout,/ customer)的请求应重定向到该目录的http://版本(SEO)
答案 0 :(得分:0)
你可以试试这个
RewriteEngine On
RewriteBase /
# http non-www to www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [R=301,L]
# https non-www to www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*) https://www.domain.com/$1 [R=301,L]
# http://www.domain.com/checkout or http://www.domain.com/customers
# to respective https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(customers|checkout)(.*)? [NC]
RewriteRule .* https://www.domain.com/%1%2 [R=301,L]
# Else, all https to http except /customers or /checkout
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(customers|checkout) [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
答案 1 :(得分:0)
htaccess中最好的代码:
Application.Union(finalrange, t)
如果您使用cms wordpress安装和活动插件Really Simple SSL。