Помогите отредактировать .htaccess (mod_rewrite)

galaid
На сайте с 13.09.2011
Offline
16
545

Мне нужно, чтобы страницы вида

site.ru/page.php?cat=com&type=mob

заменялись на

site.ru/com/mob/

И при этом страницы вида

site.ru/page.php?cat=com

site.ru/page.php?cat=com&type=

заменялись на

site.ru/com/
digitalpnz
На сайте с 03.05.2012
Offline
43
#1
galaid:
Мне нужно, чтобы страницы вида
site.ru/page.php?cat=com&type=mob

заменялись на
site.ru/com/mob/


И при этом страницы вида
site.ru/page.php?cat=com

site.ru/page.php?cat=com&type=

заменялись на
site.ru/com/

Это уже конечные страницы или как? Вот такой вариант не прокатывает?

RewriteEngine On

RewriteRule ^com/mob$ page.php?cat=com&type=mob [L]
RewriteRule ^com$ page.php?cat=com [L]
galaid
На сайте с 13.09.2011
Offline
16
#2

digitalpnz, в данном случае cat и type могут принимать различные значения ([a-z]).

site.ru/page.php?cat=rea соответствует site.ru/rea/

site.ru/page.php?cat=rea&type=new соответствует site.ru/rea/new/
site.ru/page.php?cat=rea&type=old соответствует site.ru/rea/old/
site.ru/page.php?cat=com&type=fax соответствует site.ru/com/fax/
и т.д.

По этому ваш вариант в моем случае не подойдет.

siv1987
На сайте с 02.04.2009
Offline
427
#3

RewriteRule ^([\w]+)/$ page.php?cat=$1 [L]

RewriteRule ^([\w]+)/([\w]+)/$ page.php?cat=$1&type=$2 [L]

galaid
На сайте с 13.09.2011
Offline
16
#4

siv1987, благодарю, только разъясните, что такое [\w] и почему нужно указывать [L], а не [R]?

siv1987
На сайте с 02.04.2009
Offline
427
#5
galaid
На сайте с 13.09.2011
Offline
16
#6

siv1987, спасибо. Но все же

galaid:
почему нужно указывать [L], а не [R]?
siv1987
На сайте с 02.04.2009
Offline
427
#7
galaid:
siv1987, спасибо. Но все же

Я же вам ответил, R - это внешний редирект (external) в браузере. L - последние правило в списке, подробнее можно прочитать в офф документации, потому что в двух словах или на пальцах все не объяснить.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий