我似乎無法將'+'符號傳遞給PHP文件(index.php),即使我正確地轉義它。爲了調試問題,我設置了一個測試文件(test.php)。即使使用%2B轉義URL,PHP爲什麼會將'+'轉換爲空格?
我正在使用mod_rewrite和不起作用的文件,因此可能是相關的。
調用/test.php?z=1%2B2我得到:
["z"]=> string(3) "1+2"
呼叫/ 1%2B2我得到:
["z"]=> string(3) "1 2"
.htaccess文件重定向最後一行指數.PHP。它包含以下內容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mywebsite.com$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^index\.php
RewriteRule ^.* index.php?z=%{REQUEST_URI}
php_flag magic_quotes_gpc Off
php_flag display_errors Off
AddHandler php5-script .php
任何想法?
這個作品。它不適用於'%{REQUEST_URI}'因爲它已經被轉義了,'[B]'只能轉義反向引用('$ 1')。 – mercator
輝煌,謝謝。我知道mod_rewrite出於某種原因逃離了我的URI,但我無法弄清楚原因。 – soulkphp