使Apache上的网站由HTTP跳转到HTTPS
当你为你的WordPress网站安装好SSL证书后,会发现还是可以通过HTTP访问你的网站。这时就需要做一个HTTP到HTTPS的跳转。如果你的Web容器是Apache,那就很简单了。
在网站根目录下(我的是public_html),有一个叫做.htaccess的隐藏文件。
以我的网站为例,打开这个文件,内容是以下的样子:
|
1 2 3 4 5 6 7 8 9 10 11 |
# 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 |
接下来就要利用Apache的Rewrite技术,做一个301(永久性重定向状态码)全站重定向。对于访问端口不是443(HTTPS)的请求,均重定向到HTTPS的地址。
要注意的是,有很多教程会直接在现有的 RewriteEngine On 下面写,但是这样做的话,在打开WordPress的设置里的固定链接模块后,这个文件会被还原,之前写好的东西就都没了。所以为了避免这种情况,就不能在现有的 RewriteEngine On 下面写,而是要在文件开头另写一个模块,如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://www.rabbidsx.com [L,R=301] </IfModule> # 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 |
完成后保存,即可生效。这样,所有的HTTP请求均会自动跳转到HTTPS去了。