2017-01-22 56 views
0

現在我有方向:的.htaccess縮短當前URL

www.website.com/user.php?u=peter 

www.website.com/userhome.php?u=peter 

我想他們縮短

www.website.com/user/peter 
www.website.com/userhome/peter 

這是我的代碼現在,它不工作。當我輸入website.com/user/peter時,網站給我一個我自己的錯誤,就好像它不能獲取用戶名。 「該用戶不存在或尚未啓動時,按回」

# Turn Rewrite Engine On 
RewriteEngine on 

# NC make the rule non case sensitive 
# L make this the last rule that this specific condition will match 
# $ in the regular expression makes the matching stop 

# Rewrite for user.php?u=xxxxx 
RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L] 

# Rewrite for userhome.php?u=xxxxx 
RewriteRule ^userhome/([0-9a-zA-Z]+) userhome.php?u=$1 [NC,L] 
+1

你有相同的規則兩次,你總是要'user.php'?描述「不工作」。第二個規則應該是'^ userhome /',或者甚至可以是1規則'RewriteRule^user(home)?/([0-9a-zA-Z] +)user $ 1.php?u = $ 2 [NC,L]' – chris85

+0

這個問號應該在你提出的代碼中嗎? (home) – user3790696

+0

之後如果您打算按照一個規則來做,那麼可以選擇「home」。 – chris85

回答

1

嘗試使用以下規則:

#To leave the URL www.example.com/user/peter 
RewriteRule ^user/([^/]*)$ /user.php?u=$1 [L] 

#To leave the URL www.example.com/userhome/peter 
RewriteRule ^userhome/([^/]*)$ /userhome.php?u=$1 [L] 

測試這些之前,請務必清除緩存。