2012-03-20 39 views
2

問題URL鏈接到我的網站的形式爲阿帕奇不處理與%3F URL編碼

/fullpage.php%3F%20cp3_Hex%3D0F0200%26cp2_Hex%3D000000%26cp1​​_Hex%3DFC2024

的未編碼的URL是

/fullpadge.php?cp3_Hex=0F0200 & cp2_Hex = 000000 & cp1_Hex = FC2024

阿帕奇返回:

403:您沒有權限訪問/fullpage.php? cp3_Hex = 0F0200 & cp2_Hex = 000000

我曾嘗試以下重寫規則

重寫規則^/fullpage.php%3F(。*)$ /fullpage.php?$1

無濟於事

任何想法

+0

誰在第一個地方生成了這些鏈接? – 2012-03-20 13:51:27

+1

嘗試'RewriteRule ^/fullpage.php \?(。*)$ /fullpage.php?$1' – Gerben 2012-03-20 22:09:14

+0

鏈接是由我的網站用戶創建的。顯然,我無法控制人們如何選擇鏈接到我的網站 – 2012-03-28 12:47:30

回答

-2

你幾乎肯定獲得一個4 03錯誤。 錯誤是由於?是Windows和Linux上禁止的文件/目錄名稱字符。這意味着當Apache嘗試查找名爲「/document/root/index.php?blah」(解碼後)的文件或目錄時,它會導致403錯誤。這是在讀取.htaccess文件之前,因此您不能在.htaccess文件中使用mod_rewrite來覆蓋此403錯誤或在.htaccess文件中定義的ErrorDocument以捕獲此錯誤。

捕獲%3f的唯一方法是在「虛擬主機」(例如,虛擬主機)中使用mod_rewrite或ErrorDocument。在httpd-vhosts.conf(或主服務器配置,如果沒有任何「虛擬主機」,例如在httpd.conf中)。

+0

「因爲?是Linux上禁止的文件/目錄名字符「什麼? – 2017-04-26 12:20:56