WordPress中将HTTP强制为HTTPS(Apache Server)

您应该始终使用https加载网站。除了保护您的网站与站点用户之间的数据完整性外,https现在是许多新的浏览器api(例如geolocation api)的要求。
https?在google serp排名信号中也有一定分量。因此,确保您的站点将始终从https加载至关重要。在本教程中,我们将向您展示如何使用apache。
请注意,在执行此步骤之前,请确保已在服务器中安装并加载了ssl证书。否则,请查看我们的网站ssl证书新手指南中的教程。
如果已全部设置,则可以继续进行下一步。
http到https如果您的wordpress网站可以直接从访问,http://www.domain.com并且您要将所有访问者从http定向到https,请尝试以下.htaccess代码之一。
选项1:1个
2
3
rewriteengine on
rewritecond %{https} !on
rewriterule (.*) https://%{http_host}%{request_uri} [r=301,l]
选项2:1个
2
3
rewriteengine on
rewritecond %{server_port} ^80$
rewriterule ^.*$ https://%{server_name}%{request_uri} [r=301,l]
说明这两个选项1和2将重定向任何人访问http://www.domain.com到https://www.domain.com
选项1代码将检查连接是否为tls / ssl,而选项2代码将检查站点是否在80默认情况下为http端口号的端口上运行。
注意:通常最好使用选项1代码。语法更具表现力,并且无论端口号如何,它都将重定向到https,因为从技术上讲,站点可以在port外部使用http进行加载80。
“非www”>“ www”和http> https如果要强制将“非www”强制为“ www”,而将http强制为https,则上述.htaccess代码将无法满足要求。
为了明确起见,如果您的目标是重定向以下url:
http://www.domain.comhttp://domain.com至:
https://www.domain.com然后,您将需要使用下面的.htaccess代码。
1个
2
3
4
5
6
rewriteengine on
rewritecond %{http_host} ^domain.com$ [nc]
rewriterule (.*) http://www.domain.com/$1 [r=301,l]
rewritecond %{https} !on
rewriterule (.*) https://%{http_host}%{request_uri}
说明首先,它将所有“非www”重定向到“ www”,然后检查https,确保最终结果是:www + https。
“非www”>“ www”和http> https(在子文件夹中)现在,如果您像我们一样在一个子文件夹(即www.domain.com/blog/)中托管wordpress网站,则上述.htaccess代码将无法完美运行。
此处的目标是将所有url(无论是首页还是帖子页)都重定向到www + https url。
让我们看一下将“?从?”重定向到?“”?并将url?重定向到?“”?的url的所有可能性。
条件1我们需要重定向以下所有url:
http://domain.comhttp://www.domain.comhttp://domain.com/blog/http://www.domain.com/blog/统一为以下网址:
https://www.domain.com/blog/条件2并发布以下网址:
http://domain.com/blog/example-page/http://www.domain.com/blog/example-page/至:
https://www.domain.com/blog/example-page/当您的wordpress托管在子文件夹(eg?/blog/)中时,您将有两个.htaccess文件,即在子文件夹外部有一个.htaccess文件,而在安装wordpress的子文件夹内部有一个.htaccess文件。我们将需要同时更改它们两者。
.htaccess 博客/ 博客/.htaccess .htaccess子文件夹外将以下代码插入子文件夹外部的.htaccess中。
1个
2
3
4
5
6
7
8
rewriteengine on
### non-www to www, http to https
rewritecond %{https} !on
rewritecond %{http_host} ^domain.com$ [or]
rewriterule (.*) https://www.domain.com/$1 [r=301,l]
### subfolder
rewriterule ^$ /blog/ [r=301]
这是这段代码的作用。首先,确保使用https将域重定向到www,然后将其重定向到子文件夹。这将满足上面提到的#condition 1,但至少在条件#2之前还不起作用。
.htaccess在子文件夹内接下来,我们将需要更改子文件夹中的.htaccess代码。
默认情况下,它看起来应该像这样:
1个
2
3
4
5
6
7
8
9
10
# begin wordpress
<ifmodule mod_rewrite.c>
rewriteengine on
rewritebase /
rewriterule ^index\.php$ - [l]
rewritecond %{request_filename} !-f
rewritecond %{request_filename} !-d
rewriterule . /index.php [l]
</ifmodule>
# end wordpress
将以下.htaccess代码放在顶部和“#begin wordpress”之前
1个
2
3
4
5
6
<ifmodule mod_rewrite.c>
rewriteengine on
## http to https
rewritecond %{https} !on
rewriterule (.*) https://%{http_host}%{request_uri} [r=301,l]
</ifmodule>
有了这两套代码,它将确保输入的所有url都将包含在www和https中。
我敦促您不要在实时站点上实现此功能。在暂存/测试站点上尝试多次,确保在现场部署之前获得所需的结果。
还有一件事,为确保重定向正确无误,请确保在开始每个测试之前清除浏览器cookie和缓存。
上一个:我们在做网站设计时怎么做才能受到用户的青睐呢?
下一个:网站建设目的
浠水网站建设,浠水做网站,浠水网站设计