htaccess wordpress https重写规则



我希望你能帮助我完成下面的htaccess重写规则。

# BEGIN WordPress
 # WPhtc: Begin Custom htaccess
 # BEGIN WordPress
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{SERVER_PORT} !^443$
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 RewriteBase /
 RewriteRule ^index.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
 </IfModule>
 # END WordPress

我最近把我的wordpress网站从http改成了https。。。问题是旧的url重定向到域名,而不是该页面的https版本

例如

如果我访问以下页面https://domain.com/test/testing/,它可以100%工作,现在如果我将https部分更改为http,则页面重定向到https://domain.com而不是https://domain.com/test/testing/,我该如何修复它,以便如果您转到旧版本的页面http://domain.com/test/testing/(非https版本),则它重定向到https://domain.com/test/testing/而不仅仅是域名https://domain.com

您必须为%{REQUEST_FILENAME}找到一个变通方法,因为它只代表被访问的文件。但是您显然想要访问SSL vHost。因此,您可以将https硬编码到.htaccess.中

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这可能对你有很大帮助。(在上面找到代码)

我也一直在努力解决这个问题,最终我在同一个htaccess文件中找到了一个用于home重定向和wordpress的解决方案,最后它也适用于旧的http链接,重定向到https:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# 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

我试过你的解决方案。它运行得很好,但如果你这样做,你需要手动更改所有的内部链接。这样效果更好;)

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

我使用this.htaccess进行wordpress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

最新更新