2012-04-18 63 views
0

我在htaccess文件中使用正則表達式來捕捉/ [用戶名]並將其重定向到用戶名頁面,例如,mywebsite.com/john將轉發到mywebsite。 COM /用戶名?U =約翰。這有效,但我現在想要排除任何與存在的目錄匹配的內容。因此,如果有人訪問mywebsite.com/sign-up,則因爲該目錄(/註冊)存在,所以這是針對重定向的EXCLUDED。這是可能的,這是正常的做法嗎?謝謝。正則表達式htaccess匹配模式,除非目錄存在

編輯:理想情況下,我不希望手動排除每個現有目錄。我希望它是所有現有目錄自動的。

回答

0

在它之前使用重寫條件。 !-f表示不是現有文件,!-d表示不是現有目錄。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+)$ username?u=$1 [L] 
+0

我試過了,它適用於某些情況,但不是全部。例如,如果我追加'/登錄',那麼重定向不會發生,但如果我追加'/ css',那麼即使我的css目錄確實存在,方向也會發生。有什麼想法嗎? – 2012-07-20 13:15:34