csc

Рейтинг
0
Регистрация
26.08.2008
robotbender:
мне не нужно ничего преобразовывать - у меня все и так работает.
я спрашиваю - как правильно для seo. какой вариант лучше?

Если несложно поясните зачем вам флаг R(redirect) в правилах?

http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html#rewriterule

чтобы

http://www.xxx.zz/tovar.html?page=1

преобразовать в

http://www.xxx.zz/page_1.html

нужно

RewriteEngine On

RewriteRule ^page_([^_]*)\.html$ /tovar.html?page=$1 [L]

ну или для твоего случая

RewriteEngine On

RewriteRule ^tovar([^_]*)\.html$ /tovar.html?page=$1 [L]

а если стоит флаг [R] то он покажет вам в браузере разложеный URL

Ну правильно если у вас в HTML стоит линк в виде index.php?tovaer_page=1 то он и Не будет его преобразовывать он преобразует только из ЧПУ в понятный серверу <a href="www.xxx.zz/index.php?tovar_page=1">1</a> будет равен <a href="www.xxx.zz/tovar1.html">1</a> надо все линки делать используя Человеко Понятный Урл.

Unlock:
Совсем запутался. Можете пример дать? Что значит "у меня страница одна tovar.html" Я совсем ничего уже не понимаю :)
Да и страница tovar.html это реально статическая страница или откуда она берется?

www.xxx.ru/tovar.html=www.xxx.ru/index.php?tovar_page=0

www.xxx.ru/tovar1.html=www.xxx.ru/index.php?tovar_page=1

www.xxx.ru/tovarN.html=www.xxx.ru/index.php?tovar_page=N

при этом когда сервер получает запрос урл в формате ЧПУ(www.xxx.ru/tovar1.html) то начинается разбор строки при помощи регулярных выражений(mod_rewrite) простыми словами в формат www.xxx.ru/index.php?tovar_page=1 и сервер возвращает результат, это все делается на стороне сервера поэтому вы не видите преобразования.

P.S для русского языка он не очень удобен, больше для английского. http://www.google.com/search?hl=ru&q=blackberry&meta= почти все ЧПУ

Mod_rewrite работает на уровне сервера а не на уровне клиентского запроса. Тоесть он строку ЧПУ разбирает и передает ее серверу а сервер уже возвращает результат согласно переданным параметрам скрипту.