我有一個服務器上的文本文件的小集合。該網址是這樣的: http://mysite.com/My%20Text%20File.txtmod_rewrite沒有轉發編碼的散列?
我有一個小的PHP腳本,它的文本文件URI作爲參數,轉換文本文件到JSON: http://mysite.com/json.php?file=/My%20Text%20File.txt
而且我有一個重寫規則,使得它漂亮: RewriteRule ^(。*)。json $ /json.php?file=$1.txt
它的效果很好。現在,除文件擴展名外,JSON的URI與文本URI相同。但是如果我有一個文本文件,其中包含一個已編碼的名稱: http://mysite.com/Text%20File%20%231.txt
Apache並沒有打開文本文件的麻煩。同樣,「真實」URI的工作原理如下: http://mysite.com/json.php?file=/Text%20File%20%231.txt
但是重寫規則使它變得容易。所以PHP看到的「file」GET參數是「/ Text%20File%20」 - 散列和丟失後。
我可以避免在名稱中使用散列的文件,但我很好奇爲什麼當其他編碼字符沒有編碼時,散列會得到未編碼,而且我在其他地方找不到任何引用。
我一直想知道那個標誌做了什麼。完善。非常感謝。 – toddheasley