我有 2 个页面,分别用于会员资料页和公司资料页,对于会员,url 应该是:site.com/users/USER_ID
对于公司,url 应该是:site.com/COMPANY_ID
我的里面有这个.htaccess
:
#Members Profile Page
RewriteRule ^users/(.*)$ modules/members/members_profile.php?id=$1
RewriteRule ^users/(.*)/$ modules/members/members_profile.php?id=$1
#Companies Profile Page
RewriteRule ^(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^(.*)/$ modules/companies/companies_profile.php?id=$1
但是,这两条规则有冲突,导致用户页面也被引导,companies_profile.php
因为公司规则在地址中也包含用户的个人资料页面。
更新: 我也用过[大]标志,不起作用......:
#Members Profile Page
RewriteRule ^users/(.*)$ modules/members/members_profile.php?id=$1 [L]
RewriteRule ^users/(.*)/$ modules/members/members_profile.php?id=$1 [L]
#Companies Profile Page
RewriteRule ^(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^(.*)/$ modules/companies/companies_profile.php?id=$1
尽管如此,它仍在加载companies_profile.php
类似以下 URL /users/etc
..
我该如何解决这个问题?
谢谢你的帮助
答案1
这里有效(/ 在开头) - 根据您发布的 URL,这将执行您想要的操作。
#Members Profile Page
RewriteRule ^/users/(.*)$ modules/members/members_profile.php?id=$1 [L]
RewriteRule ^/users/(.*)/$ modules/members/members_profile.php?id=$1 [L]
#Companies Profile Page
RewriteRule ^/(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^/(.*)/$ modules/companies/companies_profile.php?id=$1
您写的内容不起作用,因为“^user/”永远不匹配。您的 URL 是“/user/”。^ 表示行首。因此,您得到的不是“行首,用户”,而是“行首,/,用户”。