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

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

 

Аватара для vadimiron

Ветеран


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

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


Цитата:
А как через file_exists() проверять в уже написанных постах? Лишняя нагрузка по-моему.
Ну так код, котрый выводит сообщение, всего один

Хотя с mod_rewrite тоже интересное решение, главное чтобы работало

-------
Fortes fortuna adiuvat


Отправлено: 00:15, 25-07-2006 | #51



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

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


Deadooshka


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

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


Siava one
Цитата:
Ваш код работает! Спасибо!
Это не может не радовать

Отправлено: 03:17, 25-07-2006 | #52


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

Ветеран


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

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


у меня затык)

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

редирект для тех кто приходит с

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

на

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

т.е. чтобы все page со значением (может быть любое через дефис или нижнее подчеркивание) работали как параметры метода get на урле куда они редиректятся (там скрипт)

все ссылки устроены так что те что были раньше по k9 должны ссылаться на k3 (директорию k9 удалили, создали директорию k3, и все соджержимое перенесли туда)

value - это переменная содержащая значение id страницы в базе, после переноса индексы поменялись, но четкие соответствия новых и старых значений - есть

значение page никак не должно менятся после редиректа, но она может быть любыми цыфрами через дефис (пользователь может захотеть посмотреть выборочно страницы скрипт их принемает как параметр get)


----
что делать?

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


Отправлено: 08:47, 30-07-2006 | #53


Deadooshka


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

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


E-mail
Код: Выделить весь код
RewriteEngine On
RewriteCond %{QUERY_STRING} value\=5\&page\=([0-9\-\_]*)
RewriteRule ^k9/send\.php$ k3/send.php?value=97&page=%1
А value юзера должен быть равен только 5? Если да, то я понял прально. А если value юзера вообще не нужно проверять, то удали "value\=5\&" где условие (во второй строке). Клади .htaccess туда, где каталог k3 (но не в него!), т.е. в корень сайта, насколько я понял. Если уже есть какие-то правила там, то первая строка не нужна ессно... В общем не проверял, но работать должно.

Последний раз редактировалось Sham, 04-08-2006 в 20:43.

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

Отправлено: 02:07, 31-07-2006 | #54


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

Ветеран


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

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


Цитата:
А value юзера должен быть равен только 5?
при вызове value=5 скрипт должен получать value=97
там их много, например при вызове
value=7 скрипт должен получать именно value=109
и при вызове именно value=50 скрипт должен получать именно value=2
и т.д.

Sham спасибо тебе большое!
завтра(сегодня уже) утром попробую

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


Отправлено: 04:07, 31-07-2006 | #55


Deadooshka


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

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


E-mail
Если так (ты бы сразу весь расклад дал), то этот вариант будет лучше. Special for you.
Код: Выделить весь код
## этот код до черты в .htaccess и кладем в корень (перед k3)
RewriteEngine On
## подмена каталога k9 на k3
RewriteRule ^k9(.*)$ k3$1 [L]
-------------------------------------------------------------------------
## а этот .htaccess с кодом ниже кладем в каталог k3
RewriteEngine On
## проверка строки GET на нужное value
## следующие 2 строки повтори для каждого значения value
RewriteCond %{QUERY_STRING} value\=5\&page\=([0-9\-\_]*)
## тут переменные местами поменял, как страховка от зацикливания :)
RewriteRule ^send\.php$ send.php?page=%1&value=97 [L]

Последний раз редактировалось Sham, 04-08-2006 в 20:44.

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

Отправлено: 19:43, 31-07-2006 | #56


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

Ветеран


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

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


Sham спасибо! и спасибо не за скрипт более, а более за
Цитата:
Special for
me,
это самое приятное и дорогое что можно редко встретить в мире

П.С.
хороших людей больше, они просто встречаеются реже

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

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

Отправлено: 01:18, 02-08-2006 | #57


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


Contributor


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

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


301 («Moved Permanently»)

как прописать это в настройках площадки...
я немного поменял структуру сайта и хочу чтобы со старых страниц шел автоматический редирект на новые.

как это следать?

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


Отправлено: 20:58, 02-08-2006 | #58


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


Contributor


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

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


в итоге решение взято здесь:
http://www.webconfs.com/how-to-redirect-a-webpage.php

но пришлось слегка модифицировать, вот что получилось:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^zimbabve/(.*)$ http://www.geo-world.ru/africa/zimbabve/$1 [R=301]

и да простить меня хостер за .htaccess размером в 93kb

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


Отправлено: 21:50, 02-08-2006 | #59


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

Ветеран


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

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


Vlad Drakula можно еще так:

RewriteRule ^(zimbabve|qw|ee|rrr|ttt)/(.*)$ http://www.geo-world.ru/$2/$1 [R=301]

если правильно понял тебя про
Цитата:
и да простить меня хостер за .htaccess размером в 93kb

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


Отправлено: 11:20, 04-08-2006 | #60



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




 
Переход