2017-01-22 13 views
0

今私がする方向があります。の.htaccess

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と入力すると、Webサイトはユーザー名を取得できないかのように私自身のエラーを表示します。 「そのユーザーが戻って存在しないか、まだ起動されていない、押して」

# 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

あなたは同じルールを2度持っています。あなたはいつも 'user.php'に行きますか? 'それは働いていない 'と記述してください。 2番目のルールは '^ userhome /'または1つのルール 'RewriteRule^user(home)?/([0-9a-zA-Z] +)user $ 1.php?u = $ 2 [NC、L]' – chris85

+0

あなたが提案したコードにその疑問符があるはずですか? after(home) – user3790696

+0

もしあなたが1つのルールyesでそれを行うつもりなら、それは '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] 

あなたはこれらをテストする前に、あなたのキャッシュをクリアしていることを確認します。