htaccess重写规则到/ user / home

时间:2015-02-14 12:03:07

标签: php apache .htaccess mod-rewrite

我需要处理这种网址:

localhost/twitter/user/home

我的重写规则是:

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

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

[NC]没有案例

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

我需要以以下形式获取网址:

$_GET['url'] = user/home

但我得到了:

$_GET['url'] = user

得到了解决

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

2 个答案:

答案 0 :(得分:1)

更改

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

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

你应该得到user/home

答案 1 :(得分:0)

造成这种情况的原因是由重写规则中的分组引起的。第一个()之间的任何内容都设置为$1。要访问网址的第二部分($2)(在您的情况下为home,在规则中的第二个()之间),您可以

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

或将您的规则重写为

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