htaccess 将规则重写为 /user/home

htaccess Rewrite Rule to /user/home

我需要处理这种URL:

localhost/twitter/user/home

我的重写规则是:

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?url= [NC,L]

^([^/\.]+)/([^/\.]+)/?$ index.php?url=指的是模式

[NC]指的是没有case

[L] 标志导致 mod_rewrite 停止处理规则集

我需要以以下形式获取 url:

$_GET['url'] = user/home

但我得到:

$_GET['url'] = user

已解决

   RewriteRule ^([^/\.]+/[^/\.]+)/?$ index.php?url= [NC,L]

改变

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?url= [NC,L]

RewriteRule ^([^/\.]+)/([^\.]+)/?$ index.php?url= [NC,L]

你应该得到 user/home

这是由您的重写规则中的分组引起的。第一个 () 之间的任何内容都设置为 </code>。要访问 url 的第二部分 (<code>)(在您的情况下是 home,您的规则中第二个 () 之间的任何内容),您可以

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?url=&action= [NC,L]

或将您的规则重写为

RewriteRule ^([^/\.]+/[^/\.]+)/?$ index.php?url= [NC,L]