协议切换时Mod_Rewrite屏蔽失败

时间:2013-03-18 23:25:20

标签: mod-rewrite

首先让我告诉你绿色比绿色更绿色,当谈到模式重写这可能是正常的行为,但我正在寻找一种方法来阻止它。

RewriteRule ^Network-Status/$ ./serverstatus.php [L,NC]

这是我的重写规则,我希望这样做只是重定向到serverstatus.php,同时仍然屏蔽它正在做得非常好的网址,但serverstatus.php被强制非ssl我不能改变这个和协议从ssl切换到非ssl会破坏URL屏蔽。

如果它只是在这一页上,我可以忍受这个,但它不是。我有其他的网址以同样的方式被屏蔽,有些则不安全。当我从无安全点击进入安全或反之亦然时,我看到同样的问题出现了。

我会举个例子。

  

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

     

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

     

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

如果有人可以帮助我,我会再次成为一个快乐的人,这让我在两天的研究和调整以及尝试不同的事情中度过了最好的一部分,最后我只能得出结论,这确实是一个直接的协议切换的结果。

如果它是一个选项我只会强制重定向到所有非SSL连接的SSL,但这根本不是可选的,有三个关键区域,编码强制不安全的连接,我不能改变它,所以每当这些页面是访问我最终有一个永无止境的循环。

1 个答案:

答案 0 :(得分:1)

如果您必须请求Network-Statusserverstatus.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]