2012-10-19 25 views
0

我正在写一个网络应用程序,并尝试使用国防部重写来漂亮我的网址。我在我的htaccess文件中使用以下内容,但存在问题。如果您尝试访问/ members,则会将您带到正确的页面,但如果您尝试访问/ members/1234,它仍会将您带到members.php页面而不是member_profile.php页面。我知道这是因为请求符合第一条规则,但我不知道解决此问题的最佳方法。我是否应该以限制性最强的第一次对它们进行重新排序,还是有更正确的方法?谢谢。国防部重写部分匹配

RewriteEngine On 
# prevent indexing directories 
Options -Indexes 
# members section 
RewriteRule ^members /scripts/members.php 
# member profile page 
RewriteRule ^members/([0-9]+) /scripts/member_profile.php?id=$1 
# groups section 
RewriteRule ^groups /scripts/groups.php 
# group profile page 
RewriteRule ^groups/([0-9]+) /scripts/group_profile.php?id=$1 
+0

现在我已经放在了更精确的规则首先留下更一般的规则来获取剩余的URL。 –

回答

1

你需要使用$来匹配字符串的结束(你还需要使用L标志停止重写):

RewriteEngine On 
# prevent indexing directories 
Options -Indexes 
# members section 
RewriteRule ^members$ /scripts/members.php [L] 
# member profile page 
RewriteRule ^members/([0-9]+)$ /scripts/member_profile.php?id=$1 [L] 
# groups section 
RewriteRule ^groups$ /scripts/groups.php [L] 
# group profile page 
RewriteRule ^groups/([0-9]+)$ /scripts/group_profile.php?id=$1 [L] 
+0

谢谢。现在我明白了,这是有道理的。 –