2013-04-02 41 views
0

我使用.htacces文件是這樣的:的.htaccess空變量給予403禁止錯誤

RewriteRule ^folder/(.*).html$ file.php?mode=$1 [L,NC] 

有這樣的URL沒有問題:

http://www.example.com/folder/qwerty.html 

但它給403禁止錯誤,如這個網址:

http://www.example.com/folder/.html 

(PS:這個問題不是一個大問題,只是我想了解如何解決這個問題,我需要到f。九是出於安全原因)

(P.s2:我試圖改變file.php爲 「如果模式==空」,但還是403錯誤)

謝謝...

+1

'if(empty($ _ GET'mode'])){// mode not set}'in'file.php'? – mkjasinski

+1

我認爲所有.ht *文件在默認情況下都是禁止的,因爲.htaccess文件就是這樣。 – lemondrop

+0

@mkjasinski看看p.s2。頁面不能執行。文件執行前出現錯誤。 – pheaselegen

回答

1

的。 Apache的默認配置包含部分:

# 
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
# 
<Files ~ "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy all 
</Files> 

含有「/.html」你的URL匹配這一點,與「.HT」路徑的文件的一部分,所以它達到你的重寫規則之前,拒絕訪問。

你將不得不重寫這個;無論是通過使部分之上更加具體,只有匹配的.htaccess和htpasswd的拒絕他們,或者通過重寫比賽重新允許的.html,喜歡的東西:

<Files ~ "^\.html"> 
    Order allow,deny 
    Allow from all 
</Files> 

...你的.htaccess中文件。

+0

感謝您的回答。但仍然是403錯誤。這是合乎邏輯的答案,但對我無效。 – pheaselegen