2010-10-12 68 views
-1

有人可以告訴我這是什麼嗎?這個Mod Rewrite做了什麼?

RewriteRule .* .main.php [QSA,L] 

從我所瞭解的將重寫任何東西改爲main.php是否正確?但不太確定QSA,L做了什麼。

這是整個.htaccess文件,當我點擊主目錄時,我得到一個400錯誤請求錯誤。 編輯:當我在瀏覽器中將結尾斜槓添加到此腳本的根目錄時,錯誤的請求消失了。

RewriteEngine On 


# Transfering to the main tranfer file 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !\.css$ 
RewriteCond %{REQUEST_FILENAME} !\.js$ 

RewriteRule .* .main.php [QSA,L] 

# nobody is allowed to access the access the INI file 

<FilesMatch "\.inc.php$"> 
    Order allow,deny 
    Deny from all 
</FilesMatch> 

回答

0

QSA =查詢字符串附加:現有的查詢字符串附加到重新寫入規則

L =最後一條規則:一組的最後一個規則,不處理任何後續RewriteRule

查看documentation獲取更多信息。您是否有文件名爲.main.php?點前綴令我擔心。您的規則讀取,除非請求是存在的,符號鏈接,或者它有一個CSS或JS擴展它去.main.php

+0

謝謝。是的....有一個名爲.main.php的文件,實際上這個腳本中有很多文件在它們的名字前面有一個點,實際上很奇怪。雖然這些點讓我感到困惑,但他們是不是指正則表達式中的「任何單個字符」? – Brett 2010-10-12 18:39:53

+0

FTR ..當我在瀏覽器中將結尾斜槓添加到此腳本的根目錄時,錯誤的請求消失了。 – Brett 2010-10-12 18:44:55

+0

它應該使用或不使用斜線。評論與URL,這個子目錄?你恰到好處地匹配任何角色。但是在這種情況下,點在右側,這是一個文字字符串。該點可能作爲附加安全措施的前綴。 – 2010-10-12 19:32:35