Мне нужно обработать такой 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
. Для доступа ко второй части ($2
) в URL (home
, в вашем случае, что - то между вторым ()
в правиле), вы могли бы
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?url=$1&action=$2 [NC,L]
или перепишите свое правило на
RewriteRule ^([^/\.]+/[^/\.]+)/?$ index.php?url=$1 [NC,L]