0

我正在编写一个网络应用程序并尝试使用 mod rewrite 来美化我的 URL。我在我的 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
4

1 回答 1

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]
于 2012-10-19T23:05:30.490 回答