Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 使用特定URL的重写规则启用https_Wordpress_Apache_Mod Rewrite_Ssl - Fatal编程技术网

Wordpress 使用特定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

我是Apache新手,我发现理解重写规则语法非常困难

以下是我的设置: 我在mydomain.com上有一个Wordpress MU站点 我已将指向mydomain.com的域site1、site2.com停放

我想要的是: 我希望此URL重定向到同一地址,但首先使用https。我已经看过几篇关于如何做到这一点的教程,但有一个问题

我的问题是: 如果我使用类似

#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,然后重定向。

这比我目前所做的工作要好得多。它现在可以正确地登录和注销。然而,另一个问题已经出现。请阅读我上面的更新,看看你是否知道如何修复它。谢谢