站长资源
中国站长网站

wordpress启动https后的apache下的301重定向问题

上天本站启用了https协议,今天发现很多收录还是http链接,那我岂不是白费功夫了!所以今天要来设置一个301重定向,把http的链接统一重定向到https上去,本以为是个简单事情,可是写了好几条规则不起作用,网上找了一个发现也没有作用,经过一番摸索,发现了wordpress的奇葩之处,记录下来供大家参考。

其实规则都差不多,只是wordpress的规则写法比较特殊,我们来看下假如我们设置了固定连接,我们的根目录.htaccess文件的默认规则如下:

# 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

这个时候我们把301重定向规则写在后面,或者上面发现并不起作用,下面请看正确的写法

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

大家有没有注意到# BEGIN WordPress ,没错就是这里,wordpress新增的规则必须加在它原有的规则之外,即:

# BEGIN WordPress和# EDN WordPress之外

本文出处:来自互联网信息共享,请勿相信收费信息站长资源 » wordpress启动https后的apache下的301重定向问题

评论 抢沙发

评论前必须登录!