Xwab
Форумыnavigate_nextСерверные технологии (Apache, nginx)

Вопросы по Mod_rewrite
Сообщения
FaZaHaK

в общем на сайте ссылки вида:
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

26 Фев 2013, 22:07
Popelis

Привет народ, такой вопрос.
Хочу я преобразовывать адреса таким образом:
site.ru/?key=ololo -> site.ru/ololo

Собственно, сделал, но нужно, чтобы если существует уже папка с именем, запрашиваемым в key, то выводилось ее содержимое, а не передавалось управление в index.php.

Вот код:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?key=$1

07 Апр 2013, 14:28
Okula

Popelis, содержимое папки выводится с помощью скрипта. Модуль mod_rewrite нужен только для того, что бы построить желаемый маршрут URL.

07 Апр 2013, 15:22
wapmorgan

Popelis,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f // для файлов
RewriteCond %{REQUEST_FILENAME} !-d // для папок
RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?key=$1

07 Апр 2013, 16:32
exelente

Ребята, подскажите пжл как можно сделать ссылку ввида touch.php?id=10&id_mess=11&answer

на touch/10/11/answer

Заранее спасибо, делал так
RewriteRule ^touch/([0-9]*)/([0-9]*)/([0-9]*)/answer touch.php?id=$1&id_mess=$2&answer [L,QSA]

не работает((( переменные индефикаторов путаются(( не пойму почему(

15 Апр 2013, 7:02
Вован

exelente, лишнее ([0-9]*) мб
[php:1:a74714d3a0]RewriteRule ^touch/([0-9]*)/([0-9]*)/answer touch.php?id=$1&id_mess=$2&answer [L,QSA][/php:1:a74714d3a0]

15 Апр 2013, 7:51
IceJOKER

Как два правила выполнить одновременно?
Нужно для движка drupal , есть его обычное правило + нужно написать еще одно правило

24 Апр 2013, 14:43
Okula

IceJOKER, не совсем понятно что ты хочешь. Приведи пример.

24 Апр 2013, 15:26
IceJOKER

Okula, у drupal-а есть свои правила mod rewrite:
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

мне нужно добавить свое правило, чтоб адрес content/portfolio/$1 заменялся node/100/[0-9]


написал правило
RewriteRule ^content/portfolio.html/([0-9]) node/100/$1 - сайт начал сильно тормозить , установил для него флаг L, тогда правило drupal-а не работает

24 Апр 2013, 15:34
Okula

RewriteRule ^content/portfolio\.html/([0-9]+)/?$ node/100/$1 [L]
Выше правила
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

24 Апр 2013, 15:51
Ответить на тему