Wordpress 使用特定URL的重写规则启用https
我是Apache新手,我发现理解重写规则语法非常困难 以下是我的设置: 我在mydomain.com上有一个Wordpress MU站点 我已将指向mydomain.com的域site1、site2.com停放 我想要的是: 我希望此URL重定向到同一地址,但首先使用https。我已经看过几篇关于如何做到这一点的教程,但有一个问题 我的问题是: 如果我使用类似Wordpress 使用特定URL的重写规则启用https,wordpress,apache,mod-rewrite,ssl,Wordpress,Apache,Mod Rewrite,Ssl,我是Apache新手,我发现理解重写规则语法非常困难 以下是我的设置: 我在mydomain.com上有一个Wordpress MU站点 我已将指向mydomain.com的域site1、site2.com停放 我想要的是: 我希望此URL重定向到同一地址,但首先使用https。我已经看过几篇关于如何做到这一点的教程,但有一个问题 我的问题是: 如果我使用类似 #RewriteCond %{HTTPS} !=on #RewriteRule ^ https://%{HTTP_HOST}%{REQU
#RewriteCond %{HTTPS} !=on
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这也会将我的其他站点重定向到https版本,因为它们是驻留的域,并且有效地加载相同的htaccess代码;由于我拥有的证书仅适用于mydomain.com,因此我收到了证书错误
我只需要保护mydomain.com上的页面,但只需要保护wp-login.php页面。另一个问题是,此页面可以在URL中移动,即:
mydomain.com/wp-login.php
mydomain.com/somecracp/wp-login.php
mydomain.com/wp login.php?xys=5653
我需要一个正则表达式,它可以在URL中的任意位置检测mydomain.com和wp-login.php的域名。然后我需要强制他们使用https。有人能帮我编译代码吗
更新:
我可能发现了问题的一部分。似乎登录页面本身也在尝试进行一些重定向。当我访问网站的管理部分时,它检测到你没有登录;然后,它会将您重定向到登录页面,但会在末尾向查询字符串添加一个重定向\u,如下所示:
http://mydomain.com/subdomain/wp-login.php?redirect_to=http%3A%2F%2Fmydomain.com%2Fsubdomain%2Fwp-admin%2F&reauth=1
这样做的目的似乎是,一旦您成功登录,它就可以将您重定向到以前尝试访问的管理部分。这个“重定向到”和它后面的内容是您登录后将重定向到的URL
我不想详细说明原因,但有没有办法强迫它覆盖上面的URL以转到mydomain.com/wp-login.php,而不使用任何rediret\u-to-crap?试试这个:
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com$ [NC]
RewriteCond %{HTTPS} !on
RewriteRule wp-login.php https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA]
重写规则的regex部分检查请求中是否有wp login.php
的实例,如果有,则重定向到https。试试看
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} wp-login.php [NC]
RewriteRule https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
rewriteCondition将检查https是否关闭,请求uri是否包含wp-login.php,然后重定向。这比我目前所做的工作要好得多。它现在可以正确地登录和注销。然而,另一个问题已经出现。请阅读我上面的更新,看看你是否知道如何修复它。谢谢