在给出代码之前,让我解释几点:
Point 1:
如果你只允许
https
链接。混合
http
&;
https
对于相同的内容
breaks the security 添加人
https
. 具有
http
, 您永远无法确保您的访问者显示的页面与您从服务器提供的页面相同。
Point 2:
搜索引擎考虑
http
&;
https
站点必须是不同的站点,即使域是相同的。因此,如果设置不正确,您可能会受到重复处罚。所以建议你去
https
一切为了更好
SEO 也
Point 3:
即使有适当的
.htaccess
如果SSL设置不正确,则可能会出现相同的错误。所以在你改变
.htaccess
代码,最好根据标准测试SSL设置。您可以使用以下工具:
this.
推荐代码:
基于以上几点,您可以使用以下代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_HOST} !^example\\.com$
RewriteRule ^(.*)$ "https://example.com/$1" [R=301,L]
# remaining htaccess mod_rewrite CODE for WordPress
</IfModule>
这将执行以下示例重定向:
http://www.example.com/ → https://example.com/
http://www.example.com/abc → https://example.com/abc
https://www.example.com/ → https://example.com/
https://www.example.com/abc → https://example.com/abc
# Additionally, even if your site is reachable by IP or
# some other domains or subdomains, this CODE will fix that too
http://Your_Server_IP/abc → https://example.com/abc
http://sub-dmoani.example.com/abc → https://example.com/abc
http://www.other-domain.com/abc → https://example.com/abc
不推荐的代码:如果出于某种原因,您不想遵循上述建议(&H);仍然希望同时允许
http
和
https
, 您可以使用以下代码(基于
this answer):
<IfModule mod_rewrite.c>
RewriteEngine On
# set protocol variable
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=proto:https]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ - [env=proto:http]
RewriteCond %{HTTP_HOST} !^example\\.com$
RewriteRule ^(.*)$ "%{ENV:proto}://example.com/$1" [R=301,L]
# remaining htaccess mod_rewrite CODE for WordPress
</IfModule>
这将执行以下示例重定向:
http://www.example.com/ → http://example.com/
http://www.example.com/abc → http://example.com/abc
https://www.example.com/ → https://example.com/
https://www.example.com/abc → https://example.com/abc