https,.htaccess和SEO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https,.htaccess和SEO相关的知识,希望对你有一定的参考价值。

我知道这里和那里有帖子独立解释下面的每个部分,但我发现很难让所有4个部分在根目录中的一个.htaccess中工作,到目前为止所有都是错误500或404。

这应该对那些具有SSL的网站非常有用,并且希望避免SEO的重复内容问题。

  1. 所有请求http://domain.com应该去http://www.domain.com(SEO)
  2. 所有请求https://domain.com应该去https://www.domain.com(SEO)
  3. / checkout和/ customers应该只访问网站的https://版本;不是http://(显然安全)
  4. 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的主要内容,如果未能解决你的问题,请参考以下文章

301 通过 .htaccess 将查询字符串重定向到 SEO 友好的 URL

简单的http(包括www)到https htaccess

php Yoast SEO规范输出的代码片段

php Yoast SEO规范输出的代码片段

重定向 seo 友好的 URL (htaccess)

php 在Yoast SEO中更改或删除OpenGraph输出的代码片段。此代码中有多个代码段。