1
這個網站我正在使用一個奇怪的方法來傳遞多個參數,查詢字符串看起來是這樣的:?terms=43<|>300,201<|>100
重寫規則與「<" and ">」
服務器端,它explode('<|>',$_GET['terms'])
分裂參數(我知道,這太醜陋了)。
這是我可以改變的東西,但<|>
分隔符必須工作,因爲鏈接已經在其他網站上傳播。它實際上在除IE以外的大多數瀏覽器上工作,IE發送URL爲UTF-8,並且不會像其他瀏覽器那樣轉義<
和>
(%3C和%3E)。
在IE上,當我輸入其中一個網址時,我只看到一個403錯誤,因爲<|>
與htaccess的重寫規則混淆在一起,而通常的重寫規則將index.php文件添加到url永遠不會執行。
所以,我需要一個RewriteRule將這些<|>
更改爲|
(只有|,IE作品)。
我想這一點,但沒有成功:
RewriteRule ^(.*)<\|>(.*)<\|>(.*)$ $1|$2|$3 [NE]
(我保持URL的三個部分,並更換<|>
與|
)
任何幫助嗎?
,請問收到你的Apache顯示的URL? – anubhava 2014-10-16 20:31:39
在日誌中,當請求來自IE時,它顯示「terms = 123 <|> 23,233 <|> 333」,當它來自另一個瀏覽器時,它顯示「terms = 123%3C |%3E23,233%3C |%3E333」( IE發送這些字符時,所有瀏覽器轉義< and >) – arieljuod 2014-10-17 03:11:20