我希望你能帮助我完成下面的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>