|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » mod_rewrite etc. |
|
mod_rewrite etc.
|
Ветеран Сообщения: 1864 |
Профиль | Отправить 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 Если кто ещё знает интересные применения данного модуля, то постите тут |
|
------- Отправлено: 14:41, 06-06-2004 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать угу, а еще сконфигурировать правила и опции в .htaccess, что в корне сайта будет.
К примеру RewriteEngine on RewriteRule ^news[\/]{0,1}$ /index.php?page=news&nid=0 RewriteRule ^news/([0-9]+)[\/]{0,1}$ /index.php?page=news&nid=$1 RewriteRule ^news/archive[\/]{0,1}$ /index.php?page=news/archive&nid=0 RewriteRule ^news/archive/([0-9]+)[\/]{0,1}$ /index.php?page=news/archive&nid=$1 RewriteRule ^mail[\/]{0,1}$ /index.php?page=mail&cid=0&oid=0&did=0 RewriteRule ^mail/([0-9]*)[\/]{0,1}$ /index.php?page=mail&cid=$1&oid=0&did=0 RewriteRule ^mail/([0-9]*)/([0-9]*)[\/]{0,1}$ /index.php?page=mail&cid=$1&oid=$2&did=0 RewriteRule ^mail/([0-9]*)/([0-9]*)/([0-9]*)[\/]{0,1}$ /index.php?page=mail&cid=$1&oid=$2&did=$3 RewriteRule ^([a-zA-Z0-9_\/\$]*)[\/]{0,1}$ /index.php?page=$1&%{QUERY_STRING} |
------- Отправлено: 11:29, 14-09-2005 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 302
|
Профиль | Сайт | Отправить PM | Цитировать Да все я это сконфигурировал и htaccess правильный. На удаленном хостинге работает. А на моем win32 домашнем - Нет. Апач 1.3.23. Ошибка 404 нет такой страницы ;(
|
Отправлено: 14:12, 14-09-2005 | #22 |
Ветеран Сообщения: 640
|
Профиль | Сайт | Отправить PM | Цитировать benya можно попробовать писать полные пути а не относительные
|
------- Отправлено: 23:06, 29-09-2005 | #23 |
Старожил Сообщения: 302
|
Профиль | Сайт | Отправить PM | Цитировать Нет я уже разобрался. htacess то по умолчанию выключен. Вот и вся проблема. Работает.
|
Отправлено: 23:08, 29-09-2005 | #24 |
Tatan1
Сообщения: n/a |
Подскажите как сделать чтобы вот так было: есть файлы в корне сайта типа about.php, contact.php, index.php и т.п. и их можно было-бы вызывать например вот так: http://www.site.com/about или например, http://www.site.com/index.php?about.
Если можно, приведите пожалуйста полный листинг того, что надо добавить в .htaccess. Заранее благодарен. |
Отправлено: 14:00, 10-02-2006 | #25 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:19, 10-02-2006 | #26 |
Tatan1
Сообщения: n/a |
Prisoner
Не получается, ошибка 403. |
Отправлено: 21:50, 10-02-2006 | #27 |
(*.*) Сообщения: 36523
|
Профиль | Сайт | Отправить PM | Цитировать Какая интересная тема! Я ее обязательно прочитаю целиком, если вы скажете можно ли сделать следующую вещь. Есть поддомен unattended.oszone.net (некоторые о нем даже знают ;-), но все материалы уже давно переехали и главная страница находится тут http://oszone.net/display.php?id=2747
Когда осуществлялся переезд я где-то вычитал про htaccess (o котором вообще понятия не имел) и сделал чтобы все запросы на страницы поддомена перебрасывались на новую главную страницу. Это все работает, и при запросе unattended.oszone.net все попадают куда надо. А можно ли сделать так, чтоб в адресной строке после этого отображалось не а Спасибо за внимание! |
------- Отправлено: 06:56, 01-03-2006 | #28 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Это внешний редирект используется. Можно попробовать (для относительных ссылок на unattended.oszone.net) применить правило для внутреннего редиректа чего бы то ни было на oszone.net. Тогда часть .htaccess ответственная за это дело примет вид:
RewriteEngine on RewriteCond %{SERVER_NAME} ^unattended.oszone.net$ RewriteRule ^(.+)[\/]{0,1}$ http://oszone.net/$1?%{QUERY_STRING} Пример бы имел практический смысл, если бы не делал тоже самое, что выше - не менял адрес в адресной строке. Но, насколько я понял без внешнего редиректа (когда сервер в силу каких-то причин отправляет броузеру заголовочную информацию о смене адреса) с домена на домен не обойтись. Прошу коллег поправить меня, если я ввожу в заблуждение уважаемого модератора. |
------- Отправлено: 16:20, 01-03-2006 | #29 |
(*.*) Сообщения: 36523
|
Профиль | Сайт | Отправить PM | Цитировать Prisoner
Спасибо за ответ. Возможно, я не совсем подробно об'яснил, а еще не исключено, что я выбрал совсем не ту тему для вопроса. Попробую пояснить в меру моих весьма скромных знаний в данной области. Когда поддомен был создан, я получил данные для соединения по FTP: IP, username/pass. После установки соединения я попадал в каталог с cgi-bin\ html\ logs\ В html все мои файлы и лежали. Туда же в итоге я кинул свой htaccess. Мне никто толком даже об'яснить не мог как нормально редирект сделать Так что я нарыл что-то в гугле... Теперь все, что я хочу сделать - это отображать другой адрес в адресной строке. Т.е. не адрес страницы, отдаваемой движком сервера, а поддоменное имя. Возможно ли такое вообще? Может надо действовать иными методами и mod_rewrite тут вообще не причем? |
------- Отправлено: 05:11, 02-03-2006 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - 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 |
|