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

Компьютерный форум 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

 

Ночной странник


Contributor


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

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


E-mail
ага... тогда один регексп будет в несколько десятков килобайт...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 13:01, 04-08-2006 | #61



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

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


Deadooshka


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

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


Vlad Drakula
Цитата:
немного поменял структуру сайта и хочу чтобы со старых страниц шел автоматический редирект
Хост чтоль поменял? Какие хоть измены то? А то поговорил сам с собой - и доволен... мне может тоже интересно... да и другим понятнее будет
Цитата:
да простить меня хостер
главно, чтоб юзер простил...

Отправлено: 22:05, 04-08-2006 | #62


Ночной странник


Contributor


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

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


Sham
Цитата:
главно, чтоб юзер простил...
для них и и сделано... у них просто происходит переадресация и все... они этого и не замечают...

Цитата:
Хост чтоль поменял? Какие хоть измены то? А то поговорил сам с собой - и доволен... мне может тоже интересно... да и другим понятнее будет
в се очень просто было 190 категорий я их раскидал по 6 разделам... вот и все линки поменялись... все это было сделано чтобы старые линки работали...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 22:16, 04-08-2006 | #63


Deadooshka


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

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


Vlad Drakula
Цитата:
они этого и не замечают
как же... у тебя же внешний редирект, тоже самое, что header("location:...."), слепой не заметит...
Цитата:
в се очень просто было 190 категорий я их раскидал по 6 разделам
дааа, объяснил... ты лучше объясни, для чего внешний редирект делаешь, ежели хост не менял? Давай колись

Отправлено: 05:56, 05-08-2006 | #64


Ночной странник


Contributor


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

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


Sham
иначе перекидывалось на другой домен... у охной площадки два домена...

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 09:43, 05-08-2006 | #65


Аватара для E-mail

Ветеран


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

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


Sham вообще то опять не так объяснил((

директорию k9 удалили, создали директорию k3,
но еще были директории k10 и k11 и теперь все это находится только в k3

загвоздка в том, что некоторые value у k10 такие же как и у k11 и k9 (

т.е. если раньеш была ссылка:

http://site.ru/k9/send.php?value=5&page=1-9

она должна стать:

http://site.ru/k3/send.php?value=97&page=1-9

а если ссылка:

http://site.ru/k10/send.php?value=5&page=1-9

она должна стать:

http://site.ru/k3/send.php?value=76&page=1-9

вот так вот(
и что тут можно сделать?..

-------
Основы HTML | Конференции


Отправлено: 02:41, 16-08-2006 | #66


Deadooshka


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

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


E-mail
Код: Выделить весь код
## этот код до черты в .htaccess и кладем в корень (перед k3)
RewriteEngine On
## подмена каталога k9, k10, k11 на k3
RewriteRule ^(k9|k10|k11)(.*)$ k3$2 [L]
-------------------------------------------------------------------------
## а этот .htaccess с кодом ниже кладем в каталог k3
RewriteEngine On
## если value по-разному меняется для k9, k10, k11, сверяем по каждому...
## ----------НАЧАЛО value=5-----------
## если value=5 и каталог k9
RewriteCond %{THE_REQUEST} \/k9\/
RewriteCond %{QUERY_STRING} value\=5\&page\=([0-9\-\_]*)((\&.+)*)$
RewriteRule ^send\.php$ send.php?page=%1&value=97%2 [L]
## если value=5 и каталог k10
RewriteCond %{THE_REQUEST} \/k10\/
RewriteCond %{QUERY_STRING} value\=5\&page\=([0-9\-\_]*)((\&.+)*)$
RewriteRule ^send\.php$ send.php?page=%1&value=76%2 [L]
## если value=5 и каталог k11 (к примеру)
RewriteCond %{THE_REQUEST} \/k11\/
RewriteCond %{QUERY_STRING} value\=5\&page\=([0-9\-\_]*)((\&.+)*)$
RewriteRule ^send\.php$ send.php?page=%1&value=ТВОЕ_ЧИСЛО%2 [L]
## -----------КОНЕЦ value=5-----------
##
## Если value одинаково меняется для всех мертвых каталогов...
## например value=6...
## -----------НАЧАЛО value=6------------
RewriteCond %{QUERY_STRING} value\=6\&page\=([0-9\-\_]*)((\&.+)*)$
RewriteRule ^send\.php$ send.php?page=%1&value=ТВОЕ_ЧИСЛО%2 [L]
## -----------КОНЕЦ value=6--------------
## и все в таком же духе...
Есть еще вариант с переменными окружения вместо THE_REQUEST, но так проще и надежнее IMHO...

Последний раз редактировалось Sham, 18-08-2006 в 01:12.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:11, 16-08-2006 | #67


Аватара для E-mail

Ветеран


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

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


Цитата:
если value одинаков для k9, k10, k11, шерстим по каждой папке
эм, папок k9, k10, k11 уже нету и надеюсь больше не понадобится создавать эту кучу молу?((((((

а если я вдруг не помню какие именно цифры у папок совпадают, я конечно могу посмотреть, но тогда придется сравнить кучу файлов старых урлов, и скорее всего я так и поступлю(( , но можно както это автоматизировать?.... я например ума не приложу как..

кстати говоря, там помимом page и value есть еще параметр &lang=en или вообще lang может отсутствовать.....

-------
Основы HTML | Конференции


Отправлено: 20:38, 16-08-2006 | #68


Deadooshka


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

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


E-mail
Цитата:
эм, папок k9, k10, k11 уже нету
а если чуточку внимательнее быть? Мы проверяем исходный URL регуляркой на наличие мертвых каталогов (к9-11), чтобы нужное правило сработало. А если от них ничего не зависит, чего тогда голову морочим?
Цитата:
а если я вдруг не помню какие именно цифры у папок совпадают
а вот давай ты мне свои мозги на мыло скинь и я ими подумаю, потом обратно тебе пришлю...

Ты видимо приколоться надо мной решил... каждый раз что-то новое мне сообщаешь... а если я тебе решение предложу, где гарантия, что ты еще что-нить не забыл?

С какой стороны (в каком месте) QUERY_STRING может быть &lang=en? Есть ли какая-нить логика в цифрах, которые у тебя меняются (может формула какая)? Что ты именно хочешь автоматизировать? Если логики нет, то без кучи-малы никак не обойтись...

Ты сначала посчитай, сколько всего значений value у тебя меняется, столько и будет наборов правил, и с каждым значением тебе придется работать отдельно (где каталоги разные, или еще че-нить). И что, в каждой папке send.php был? Извини, моя фамилия не Холмс...

Отправлено: 01:07, 17-08-2006 | #69


Аватара для E-mail

Ветеран


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

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


Sham нет я не прикалываюсь, просто обнаружилось еще несколько папок)..

Цитата:
С какой стороны (в каком месте) QUERY_STRING может быть &lang=en?
по идее в самом конце, после page, либо вообще не быть

-------
Основы HTML | Конференции


Отправлено: 08:22, 17-08-2006 | #70



Компьютерный форум 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




 
Переход