2012-02-20 41 views
-1

我想要寫在.htaccess文件中的重寫規則重定向不指定一個有效的目錄名的所有請求重定向。什麼將是重寫規則,當查詢不是一個有效的目錄

爲例如如果我在我的網站根目錄下有1個文件夾test和1個文件index.php。我的要求是,它們在測試文件夾或子文件夾請求頁面的所有請求將不會被mod_rewrite的重寫和那不以test開頭的所有其他請求都將被改寫爲的index.php

P.S.數量的文件夾和他們的名字經常改變,這就是爲什麼我正在尋找一個通用的重寫代碼,它將檢查有效的目錄名稱。

以上情況將會是什麼重寫?

回答

0

爲此在YOUT .htaccessDocumentRoot

RewriteEngine on 
RewriteBase/

Rewritecond %{REQUEST_FILENAME} !-f 
Rewritecond %{REQUEST_FILENAME} !-d 
Rewritecond %{REQUEST_FILENAME} !-l 
RewriteRule^index.php [L] 

rewritecond apache docs-f-d & -l是CondPatterns的變體。而非真正的正則表達式字符串。

  • 「-D」(是目錄) 黃柏TestString視爲一個路徑名並測試它是否存在,並且是一個目錄。
  • 「-f」(是普通文件) 將TestString視爲一個路徑名並測試它是否存在,並且是一個普通文件。
  • 「-L」(是符號鏈接) 黃柏TestString視爲一個路徑名並測試它是否存在,並且是一個符號鏈接。

如果前綴爲感嘆號('!'),則會導致否定其含義。即!-f表示不是常規文件。