https,.htaccess和SEO
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https,.htaccess和SEO相关的知识,希望对你有一定的参考价值。
我知道这里和那里有帖子独立解释下面的每个部分,但我发现很难让所有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)
答案
你可以试试这个
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]
另一答案
htaccess中最好的代码:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
如果你使用cms wordpress安装和活动插件真的很简单的SSL。
以上是关于https,.htaccess和SEO的主要内容,如果未能解决你的问题,请参考以下文章