htaccess将规则重写到/user/home


htaccess Rewrite Rule to /user/home

我需要处理这种URL:

localhost/twitter/user/home

我的重写规则是:

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

^([^/'.]+)/([^/'.]+)/?$ index.php?url=$1表示图案

[NC]表示无情况

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

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

$_GET['url'] = user/home

但我得到了:

$_GET['url'] = user

已解决

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

更改

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

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

您应该得到user/home

这是由重写规则中的分组引起的。第一个()之间的任何值都被设置为$1。要访问url的第二部分($2)(在您的情况下是home,在您的规则中是第二个()之间的任何部分),您可以

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

或者将您的规则改写为

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