2013-03-18 21 views
0

首先讓我告訴你更綠色,當涉及到mod重寫這可能是正常的行爲,但我正在尋找一種方法來阻止它。Mod_Rewrite掩碼在協議切換上失敗

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

這是我的重寫規則,我希望這所要做的只是重定向到serverstatus.php同時仍然掩蓋它完美表現不俗的網址,但serverstatus.php被迫非SSL我不能改變這個以及從ssl到non-ssl的協議切換正在破壞URL掩碼。

如果只是在這一頁上,我可以忍受這一點,但它不是。我有其他的網站以相同的方式掩蓋了一些不安全的網站。當我從無安全點擊安全或反之亦然,我看到出現同樣的問題。

我會給你一個例子。

安全頁面 - >網絡的狀態/ URL屏蔽失敗(協議轉換)

網絡的狀態/ - >網絡的狀態/ URL屏蔽作品(無協議交換機)

網絡的狀態/ - >安全頁URL掩蔽失敗(協議開關)

如果有人能幫助我,我會再次成爲一個快樂的人,這使我在兩天的研究,調整和嘗試不同的事情的最好的部分,最後我只能得出結論,這確實是一個直接的結果協議交換機。

如果這是一個選項,我只是強制重定向到所有非SSL連接的SSL,但這根本不是可選的,有三個關鍵領域,其中編碼強制一個不安全的連接,我不能改變它,所以只要這些頁面訪問我結束了一個永無止境的循環。

+0

'serverstatus.php'如何強制non-ssl?當我請求「https:// www.example.com/serverstatus.php」時會發生什麼? – 2013-03-18 23:30:14

+0

http://www.example.com/serverstatus.php在htaccess中使用forced-ssl Obvioucsy這是導致循環的原因。我不是什麼原因,它的PHP我想有一個立即位置標題切換在文件的頂部,它已被ioncubed,所以我不能說,但這是我會做 – Chris 2013-03-18 23:34:53

+0

serverstatus.php做一個'header(Location :...)'重定向,如果用https調用它? – 2013-03-18 23:37:55

回答

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] 
+0

我現在就試一試,看看是否解決了這個問題。給我5分鐘,我會知道這是否有效。 – Chris 2013-03-18 23:55:02

+0

我不能爲你增加聲譽,但這已經完全排除了問題,謝謝。 – Chris 2013-03-18 23:58:46

+0

我只是想爲任何使用它的人添加一個註釋,請確保你在每次重寫時使用整個集合,我只是試圖使用一個https條件,發現我打了循環。 – Chris 2013-03-19 00:18:03

相關問題