您必須在用於請求的URL中編碼特殊字符?
和=
。
例如,如果你的文件名爲strange.php?plop=1
,那麼,您的網址必須是:
http://tests/temp/strange.php%3Fplop%3D1
在PHP中,這可以通過使用urlencode()
函數來完成。註釋後
編輯:在這種情況下(這是真的不好......),一個解決辦法可能是使用像這樣的重寫規則:
RewriteRule .* temp.php
這將重定向所有內容到temp.php
。
在那裏,您可能可以使用$_SERVER
中的某些內容來查找請求。
例如,如果我把這個網址:
http://tests/temp/strange.php?plop=1
而且在使用的代碼這一部分我temp.php
:
var_dump($_SERVER);
我得到這樣的輸出:
array
...
'SERVER_NAME' => string 'tests' (length=5)
'SERVER_ADDR' => string '127.0.0.1' (length=9)
'SERVER_PORT' => string '80' (length=2)
...
'REDIRECT_QUERY_STRING' => string 'plop=1' (length=6)
'REDIRECT_URL' => string '/temp/strange.php' (length=17)
...
'QUERY_STRING' => string 'plop=1' (length=6)
'REQUEST_URI' => string '/temp/strange.php?plop=1' (length=24)
'SCRIPT_NAME' => string '/temp/temp.php' (length=14)
...
所以,在這裏,我想我可以重新建立文件名,使用$_SERVER['REQUEST_URI']
。
我不能這樣做,因爲所有鏈接已經生成。 – Molfar 2011-03-11 18:13:12
@Molfar:哦,太糟糕了。我已經編輯了一些額外的信息我的答案;希望這可以幫助 ! – 2011-03-11 18:21:59