0
我在的.htaccess文件以下行網站目錄:如何在編輯.htaccess文件時避免URL和目錄匹配問題?
RewriteEngine On
RewriteRule ^([a-z]{1}[a-z0-9_-]{3,20})$ account.php?username=$1&%{QUERY_STRING}
如果它收到例如URL:
http://localhost/samplesite/johnsmith
將它改寫爲
http://localhost/samplesite/account.php?username=johnsmith
這很好。
當站點目錄中有一個名爲johnsmith的目錄時,會發生此問題。那麼URL被重寫並顯示爲
http://localhost/samplesite/johnsmith/?username=johnsmith
並且這是一個問題。我試圖爲每個用戶實現帳戶頁面功能,但是如果用戶想要註冊一個像根目錄中的某個目錄一樣的用戶名,功能將會中斷?我嘗試添加重寫條件來檢查請求的URL是否代表現有的目錄或文件:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
但我不知道如何繼續。
如果有人知道更好的方式爲用戶做賬戶頁面功能,我將不勝感激地給我一個建議。
有人能幫我解決這個案子嗎?謝謝!
是的,最後我在.htaccess文件線條看起來像你的代碼。但問題尚未解決。如果我有相同的目錄和用戶名可用,如何解決它?或者有沒有更好的解決方案來解決這個問題? – forbdn
我的問題的第一個答案沒有解決問題!有誰知道如何防止這個問題?它在目錄和帳戶用戶名的匹配名稱中。功能類似於Facebook中的功能 - 例如,我想與http://www.facebook.com/johnsmith/執行相同的操作。我將非常感謝您的幫助! – forbdn
@forbdn我不認爲你可以用.htaccess解決這個問題。相反,所有請求都必須首先到'index.php'來檢查數據庫以查看是否存在記錄。如果沒有,那麼PHP將不得不檢查目錄是否存在,如果存在則重定向。 –