пара проблем с реврайтом...

Печать RSS
444

Автор
Землянин
0
в общем на сайте ссылки вида:
http://site.ru/?str=cabinet
как сделать, чтоб при заходе на:
http://site.ru/index.php?str=cabinet (те если в адресной строке есть index.php + get запрос - переадресовывть, а если просто /get запрос - то пропускать) - срабатывал редирект на главную?
сделал редирект с index.php на /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
но при гет запросах к индеку - эта фича не катит...
***
и еще:
почему не катит:
RewriteRule ^?str=chat$ chat.php [L], а без вопроса катит... но мнеж надо чтоб http://site.ru/?str=chat (именно с вопросом (?str, а не просто str)) обращался к http://site.ru/chat.php
К

Айсберг Визави
0
а разница? с помощью модуля ты настраиваешь всего лишь внешний вид, ссылка то по прежнему та же. в скрипте параметры видны так же
П

Пацак
0
RewriteRule ищет совпадения в строке, которая содержит адрес до первого символа ?. Все, что после, находится в %{QUERY_STRING} и требует отдельной проверки в RewriteCond. Полагаю, проблема в этом.
Автор
Землянин
0
2. Кевин Митник_HHTeam, я знаю что я делаю. мне это необходимо для однообразия ссылок

Добавлено через 01:27 сек.
3. Im-ieee, первый вопрос решил. правдо совсем по другому... но норм... а насчет второго вообще не получается...
Изменил: Алексей (27.02.2013 / 17:38)

Оранжевые штаны
0
RewriteRule ^?str=chat$ chat.php [L]
это как??? ты пытаешься получить адрес site.ru/chat.php или site.ru/?str=chat& ??? Вот пара примеров:
RewriteEngine on
RewriteBase / 
RewriteRule ^([a-z]*)/?$ /?str=$1& [L,QSA]
RewriteRule ^([a-z]*)/([a-z]*)/?$ /?str=$1&$2 [L,QSA]
таким образом будет так: site.ru/chat site.ru/forum и т.п
но есть один минус... чтобы не выскакивала ошибка 404 при обращении к index.php надо сделать так:
RewriteRule ^/?$ index.php [L,QSA]
Автор
Землянин
0
5. DimmoS, мне именно нужно из site.ru/chat.php сделать site.ru/?str=chat
но из-за вопроса после слеша - не канает...
К

Айсберг Визави
0
use %{QUERY_STRING}
Изменил: Кевин Митник (27.02.2013 / 22:35)

Оранжевые штаны
0
FaZaHaK (27 Февраля 2013 / 21:05)
5. DimmoS, мне именно нужно из site.ru/chat.php сделать site.ru/?str=chat
но из-за вопроса после слеша - не канает...
для поисковиков не очень такие адреса да и юзерам труднее!!
Автор
Землянин
0
7. Кевин Митник_HHTeam, я в реврайте вообще плохо шарю... как это применить правельно?

Добавлено через 01:15 сек.
8. DimmoS, блин, я спросил как это сделать... мне пофиг на поисковики и моих юзеров... мне надо чтоб все было единообразно и все...
П

Пацак
0
9. FaZaHaK, я же тебе написал - использовать RewriteCond.
RewriteCond %{QUERY_STRING} regexp 
RewriteRule ...
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск