Apache 第二次重写永远不会执行
我要重写一下Apache 第二次重写永远不会执行,apache,mod-rewrite,url-rewriting,Apache,Mod Rewrite,Url Rewriting,我要重写一下 RewriteCond %{THE_REQUEST} /(?:user_profile)?\?user_id=([^\s&]+)\sHTTP [NC] RewriteRule ^ /%1? [L,R] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L] 它正确地允许我使用域/用
RewriteCond %{THE_REQUEST} /(?:user_profile)?\?user_id=([^\s&]+)\sHTTP [NC]
RewriteRule ^ /%1? [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L]
它正确地允许我使用域/用户名作为url
但当我再添加一条类似的重写规则时,第二条规则与上面的规则不同
RewriteCond %{THE_REQUEST} /(?:group)?\?group_id=([^\s&]+)\sHTTP [NC]
RewriteRule ^ /%1? [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^group/([^/]+)/?$ /group?group_id=$1 [L]
有人能帮我重新连接第二个返回的域名/组/组名,同时保持第一个域名/用户名的工作状态。您有两个问题。第一个问题是,在重定向请求时,希望保留
组/
前缀
RewriteCond %{THE_REQUEST} /(?:group)?\?group_id=([^\s&]+)\sHTTP [NC]
RewriteRule ^ /group/%1? [L,R]
第二个问题是,在第一次重写通过后,您将/group/groupname
重写为/group?group\u id=groupname
。这将使/group
与用户名规则匹配。要防止此前缀匹配:
RewriteCond %{REQUEST_URI} !^/group
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L]
你有两个问题。第一个问题是,在重定向请求时,希望保留
组/
前缀
RewriteCond %{THE_REQUEST} /(?:group)?\?group_id=([^\s&]+)\sHTTP [NC]
RewriteRule ^ /group/%1? [L,R]
第二个问题是,在第一次重写通过后,您将/group/groupname
重写为/group?group\u id=groupname
。这将使/group
与用户名规则匹配。要防止此前缀匹配:
RewriteCond %{REQUEST_URI} !^/group
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L]