Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » mod_rewrite etc.

Ответить
Настройки темы
mod_rewrite etc.

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120


Конфигурация

Профиль | Отправить PM | Цитировать


Вот только недавно познакомился с этим замечательным модулем

Вот что я вынес из данного знакомства-с помощью mod_rewrite можно:
1) Самое распространённое использование-перезапись урлов, например есть урл index.php?forum=webmaster&topic=45
можно переписать в index.php/webmaster/45, что для некоторых поисковых машин намного более лучший вариант
2)запретить доступ к определённому файлу
RewriteRule ^file.ext$ - [F]
3)запретить доступ определённому браузеру, сборщику почты, доступ с определённого айпи или пришедшим с определённого сайта
RewriteCond %{HTTP_USER_AGENT} ^Browser_Name [OR]
RewriteCond % {REMOTE_HOST} ^www.badsite.com$ [OR]
RewriteCond % {REMOTE_ADDR} ^169.45.23.01$
RewriteRule ^.*$ - [F]

Это было самое распространённое применение данного модуля, но есть ещё много всяких интересных хитростей:
наприсер я недавно нашёл такое применение-при вызове страницы pic.html, нужно показывать картинку дня, поэтому можно переписать этот урл в pic-06-06.html c помощью серверных переменных TIME_MON и TIME_DAY
RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html

Или ещё кому нравится можно переписать файл index.php кому очень захочется в index.bmp

Если кто ещё знает интересные применения данного модуля, то постите тут

-------
Fortes fortuna adiuvat


Отправлено: 14:41, 06-06-2004

 

Deadooshka


Сообщения: 2481
Благодарности: 670

Профиль | Отправить PM | Цитировать


Цитата kamaikin:
если этого файла нет то должно выполняться перенаправление »
перед правилом дб условие
Код: Выделить весь код
RewriteCond %{REQUEST_FILENAME} !-f

Отправлено: 19:30, 04-04-2010 | #161



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Sham:
Цитата kamaikin:
если этого файла нет то должно выполняться перенаправление »
перед правилом дб условие
Код:
RewriteCond %{REQUEST_FILENAME} !-f »
Не работает ни так:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^image/small/([a-z0-9_]{2})([a-z0-9_]+)\.jpg(/?)+$ cache/image/small/$1/$1$2.jpg [L]
RewriteRule ^image/(small|big|original|pda)/([a-z0-9_]+).(jpg|png|gif)(/?)+$ images.php?size=$1&name=$2&ext=$3 [L]

ни так:
RewriteRule ^image/small/([a-z0-9_]{2})([a-z0-9_]+)\.jpg(/?)+$ cache/image/small/$1/$1$2.jpg [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^image/(small|big|original|pda)/([a-z0-9_]+).(jpg|png|gif)(/?)+$ images.php?size=$1&name=$2&ext=$3 [L]

Без [L] тоже пробовал(((

Отправлено: 22:51, 04-04-2010 | #162


Deadooshka


Сообщения: 2481
Благодарности: 670

Профиль | Отправить PM | Цитировать


RewriteCond действует только на следующий RewriteRule
экранируйте точку, и
Цитата kamaikin:
(/?)+ »
это глупость...
Цитата kamaikin:
Без [L] тоже пробовал((( »
L в основном ставится для перестраховки от зацикливания, но в этом правиле оно не грозит.

Отправлено: 00:37, 05-04-2010 | #163


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Sham! Вы уж простите клинического идиота, но никак не могу заставить работать.... или если файла нет выкидывает 404 или всегда отрабатывает скрипт....

Отправлено: 06:37, 05-04-2010 | #164


Deadooshka


Сообщения: 2481
Благодарности: 670

Профиль | Отправить PM | Цитировать


kamaikin, у вас два правила фактически одинаковые (могут совпадать на один урл), поэтому путаница. имхо можно местами поменять (правило с RewriteCond на первое место), либо поискать другое решение, более ясное. тут вам никто не помощник, ибо все нюансы известны только вам...

Отправлено: 15:20, 05-04-2010 | #165


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Sham:
зачем флаг N? »
чтобы от второго правила вернуться к первому, если не стоит слеш в конце, он его добавляет, а обработчик строки о слешем - первое правило. Я неправильно понимаю?
Почему при ссылке href="/ru/page2", он отправляет запрос верно, но в строке адреса ничего не меняется?

Отправлено: 15:21, 05-04-2010 | #166


Deadooshka


Сообщения: 2481
Благодарности: 670

Профиль | Отправить PM | Цитировать


Цитата droZel:
чтобы от второго правила вернуться к первому »
неправильно. там где http:// или [R] - значит клиенту отправляется заголовок Location и процесс завершается.

мануал (перевод) можно тут почитать, хотя имхо не идеальный...

Отправлено: 15:32, 05-04-2010 | #167


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пожалуйста, подскажите такую вещь:

Нужно все урлы вида
/asdfasfd.html
Преобразовывать в
/asdfasfd.html?parameter=znach

Вставил в конфиг апача:
RewriteRule (.*)\.html$ $1.html?parameter=znach [R]

Браузер выдает:
Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): Обнаружено слишком много переадресаций.

Если в конфиге апача пишу:
RewriteRule (.*)\.html$ $1.html?parameter=znach [L]
Тогда не работает перенаправление.

Помогите пожалуйста понять как сделать правильно.

Отправлено: 14:09, 02-07-2010 | #168


Deadooshka


Сообщения: 2481
Благодарности: 670

Профиль | Отправить PM | Цитировать


циклит, потому что шаблон слишком общий и нет флага L (R - для внешнего редиректа), нужно условие или более конкретный шаблон.

Код: Выделить весь код
RewriteCond %{QUERY_STRING} !parameter\=znach
RewriteRule ^(.*)\.html$ $1.html?parameter=znach [L]
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:27, 02-07-2010 | #169


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Sham:
RewriteCond %{QUERY_STRING} ! »
Спасибо.

Я ещё тупанул ... это не единственное правило ... поставил его в самый верх... и заработало.

Отправлено: 13:01, 03-07-2010 | #170



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » mod_rewrite etc.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - mod_rewrite .htaccess Wimpheling Общий по Linux 0 08-10-2013 14:57
Разное - Включение модуля mod_rewrite Lenivets1 Программирование и базы данных 5 13-02-2012 20:00
mod_rewrite Jaels Программное обеспечение Linux и FreeBSD 2 06-01-2012 12:09
mod_rewrite kishert Вебмастеру 3 10-03-2009 06:52
mod_rewrite PHANTOM777 Вебмастеру 1 20-07-2008 10:00




 
Переход