2012-06-19 43 views
1

我重寫URL爲用戶提供這樣的mod_rewrite簡介:domain.com/users/JohnSmith。的.htaccess mod_rewrite的 - 保留的文件夾名稱

我想也許這將是整潔跳過用戶文件夾,然後簡單地把它想:domain.com/JohnSmith。

我的問題:我如何做到這一點,讓我的系統和站點文件夾?如果我查找domain.com/browsersupport,profile.php頁面將檢查名稱並在數據庫中查找它,並且由於沒有用戶具有該名稱,因此不會顯示任何頁面。

我知道它可以固定一些,如果在PHP代碼語句。此外,文件夾名稱需要保留,以便用戶不能註冊這些名稱。但是對於配置文件查詢 - 有沒有更好的方法?也許要排除.htaccess文件中的系統文件夾,以便profile.php不會去查找該用戶?

回答

1

這就是這2個條件來發揮作用:

# if the request does NOT map to a file 
    RewriteCOnd %{REQUEST_FILENAME} !-f 
    # and the request does NOT map to a directory 
    RewriteCOnd %{REQUEST_FILENAME} !-d 
    # only THEN use this rewriterule 
    RewriteRulle ....etc... 

如果你有「動態」頁面和動態用戶,重寫規則應該由它檢查是否一個頁面處理結束名稱存在,並且只有它不存在時纔會提供用戶頁面。

0
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule #insert user rewrite rule here 

這將只適用於重寫規則,如果由給定名稱的文件夾或文件不存在(你的問題似乎暗示browsersupport之類的文檔根目錄一樣,確實存在)。

是的,你必須勤於讓用戶知道他們不能註冊某些域名這樣。如果他們這樣做,他們將無法通過該路線訪問他們的用戶名。

我已經這樣做了,但我有一個自我強加的規則可能並不適合每一個人,但對我的作品:用戶名必須是5個字符,至少,和控制器4個或更少。

相關問題