上天本站启用了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之外
评论前必须登录!
注册