htaccess переписать правило в / user / home

0

Мне нужно обработать такой 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]
Теги:
.htaccess
mod-rewrite

2 ответа

1
Лучший ответ

+ Изменить

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

в

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

и вы должны получить user/home

0

Причина этого связана с группировкой в вашем правиле перезаписи. Все, что находится между первым () равно $1. Для доступа ко второй части ($2) в URL (home, в вашем случае, что - то между вторым () в правиле), вы могли бы

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

или перепишите свое правило на

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню