Mod rewrite Mod_重写屏蔽在协议切换时失败

Mod rewrite Mod_重写屏蔽在协议切换时失败,mod-rewrite,Mod Rewrite,首先让我告诉你,我比格林更环保,当谈到修改时,这可能是正常的行为,但我正在寻找一种方法来阻止它 RewriteRule ^Network-Status/$ ./serverstatus.php [L,NC] 这是我的重写规则,我希望这样做只是重定向到serverstatus.php,同时仍然屏蔽它做得很好的url,但是serverstatus.php被强制为非ssl,我无法更改这一点,并且从ssl到非ssl的协议切换正在破坏url屏蔽 如果只是在这一页上,我可以接受它,但事实并非如此。我用同样

首先让我告诉你,我比格林更环保,当谈到修改时,这可能是正常的行为,但我正在寻找一种方法来阻止它

RewriteRule ^Network-Status/$ ./serverstatus.php [L,NC]
这是我的重写规则,我希望这样做只是重定向到serverstatus.php,同时仍然屏蔽它做得很好的url,但是serverstatus.php被强制为非ssl,我无法更改这一点,并且从ssl到非ssl的协议切换正在破坏url屏蔽

如果只是在这一页上,我可以接受它,但事实并非如此。我用同样的方式屏蔽了其他URL,有些是安全的,有些不是。当我从“无安全”按钮单击到“安全”按钮,或者从“无安全”按钮单击到“安全”按钮,我看到同样的问题出现了

我给你举个例子

安全页面->网络状态-URL屏蔽失败(协议切换)

网络状态/->网络状态/URL屏蔽有效(无协议切换)

网络状态->安全页面URL屏蔽失败(协议切换)

如果有人能帮我,我会再次成为一个快乐的人,这花了我两天的时间研究、调整和尝试不同的东西,最后我只能得出结论,这确实是协议转换的直接结果


如果这是一个选项,我会简单地强制所有非SSL连接重定向到SSL,但这根本不是可选的,有三个关键领域的编码强制不安全的连接,我无法更改它,因此每当访问这些页面时,我都会以一个永无止境的循环结束。

如果必须请求
网络状态
serverstatus.php
)作为HTTP,您可以先自己强制执行

RewriteCond %{HTTPS} on
RewriteRule ^Network-Status/$ http://%{HTTP_HOST}/$0 [R,L,NC]
然后再重写

RewriteRule ^Network-Status/$ /serverstatus.php [L,NC]
对于其他页面,您也可以从非安全页面到安全页面执行相同的操作

RewriteCond %{HTTPS} !on
RewriteRule ^other-page$ https//%{HTTP_HOST}/$0 [R,L,NC]
RewriteRule ^other-page$ /otherscript.php [L,NC]

serverstatus.php如何“强制非ssl”?当我请求
https://www.example.com/serverstatus.php
?htaccess中的强制ssl很明显,这是导致循环的原因。我不知道是什么原因造成的,它的php我猜在文件顶部有一个立即位置头可以切换,它被隔离了,所以我不能说,但这是我应该做的服务器状态s、 php有一个
头(位置:…)
redirect,如果它是用https调用的?是的,我会这样认为。这是我无法关闭的,因为我看不到要编辑它的代码。不需要在标题中添加已解决的问题…我现在就尝试一下,看看这是否解决了url的问题。给我5分钟时间,我就会知道这是否有效。我还不能给你增加声誉,但这s已经很好地解决了这个问题,谢谢。我只想为使用它的任何人添加一个注释。请确保每次重写时都使用整个集合,我只是尝试使用一个https条件,发现我遇到了循环。