|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » mod_rewrite etc. |
|
mod_rewrite etc.
|
![]() Ветеран Сообщения: 1864 |
Вот только недавно познакомился с этим замечательным модулем
Вот что я вынес из данного знакомства-с помощью 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 кому очень захочется ![]() Если кто ещё знает интересные применения данного модуля, то постите тут |
|
------- Отправлено: 14:41, 06-06-2004 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Странно, у меня не подменяет, хотя без этого правила ru/page не находит(значит, правило действует как надо, но без подмены).
Проверяю в индексе явой(document.location.pathname) - так и присылает - без слеша Где копать? |
Отправлено: 17:34, 31-03-2010 | #151 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать как только открываю сайт в логах следующее
10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98e3508/initial] (1) [perdir /var/www/] pass through /var/www/ceramica/ 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98f2540/subreq] (1) [perdir /var/www/] pass through /var/www/ceramica/index.php 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98f0538/initial] (1) [perdir /var/www/] pass through /var/www/ceramica/index.css 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98e5510/initial] (2) [perdir /var/www/] rewrite 'ceramica/img/copyright_back.jpg' -> '/index.php?page=img&lang=copyright_back.jpg' 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98e5510/initial] (2) [perdir /var/www/] trying to replace prefix /var/www/ with / 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98e5510/initial] (1) [perdir /var/www/] internal redirect with /index.php [INTERNAL REDIRECT] 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98eb918/initial/redir#1] (1) [perdir /var/www/] pass through /var/www/ceramica/index.php 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98ea520/initial] (2) [perdir /var/www/] rewrite 'ceramica/swf/home.swf' -> '/index.php?page=swf&lang=home.swf' 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98ea520/initial] (2) [perdir /var/www/] trying to replace prefix /var/www/ with / 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98ea520/initial] (1) [perdir /var/www/] internal redirect with /index.php [INTERNAL REDIRECT] 10.10.0.188 - - [01/Apr/2010:16:14:46 +0500] [192.168.55.230/sid#9747bd8][rid#98f1908/initial/redir#1] (1) [perdir /var/www/] pass through /var/www/ceramica/index.php |
------- Отправлено: 11:21, 01-04-2010 | #152 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать имхо RewriteBase у вас не '/', из-за этого проблемы.
Т.е. если htaccess лежит в корне, то попробуйте убрать RewriteBase. Правило мое возьмите (там проверка на наличие файла), а то у вас Цитата total_abandon:
Цитата total_abandon:
|
||
Отправлено: 12:45, 01-04-2010 | #153 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать у меня "RewriteBase /", .htaccess лежит в /var/www a сам сайт в /var/www/ceramica. снял RewriteBase / - вообще стал не работать. .поставил настройки все как sham сказал, теперь сразу редиректит на 2 страницу и ненормально работает, то есть ссылки и тд не работают. вот логи.
10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98ec528/initial] (2) [perdir /var/www/] rewrite 'ceramica/' -> 'index.php?page=ceramica&lang=' 10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98ec528/initial] (2) [perdir /var/www/] trying to replace prefix /var/www/ with / 10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98ec528/initial] (1) [perdir /var/www/] internal redirect with /index.php [INTERNAL REDIRECT] 10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98f57b0/initial/redir#1] (1) [perdir /var/www/] pass through /var/www/ceramica/index.php 10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98f4548/initial] (1) [perdir /var/www/] pass through /var/www/ceramica/img/titles/ceramica.gif 10.10.0.188 - - [01/Apr/2010:18:11:51 +0500] [192.168.55.230/sid#9747bd8][rid#98fa560/initial] (1) [perdir /var/www/] pass through /var/www/ceramica/swf/ef_ceramica.swf |
------- Отправлено: 13:17, 01-04-2010 | #154 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать имхо у вас дб
(если /var/www/ - document_root)
либо положите htaccess в ceramica Цитата total_abandon:
|
|
Отправлено: 13:54, 01-04-2010 | #155 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать спасибо, стало работать, но не все, в ие-6,7, опера10, хроме - ок, а в мозилле че то не выводит флеши некоторые.
извините а что означает следующий лог? 192.168.155.32 - - [02/Apr/2010:14:55:45 +0500] [192.168.55.230/sid#8634bd8][rid#87d0508/initial] (2) [perdir /var/www/ceramica/] rewrite 'partners/rus' -> 'index.php?page=partners&lang=rus' 192.168.155.32 - - [02/Apr/2010:14:55:45 +0500] [192.168.55.230/sid#8634bd8][rid#87d0508/initial] (2) [perdir /var/www/ceramica/] trying to replace prefix /var/www/ceramica/ with / 192.168.155.32 - - [02/Apr/2010:14:55:45 +0500] [192.168.55.230/sid#8634bd8][rid#87d0508/initial] (1) [perdir /var/www/ceramica/] internal redirect with /index.php [INTERNAL REDIRECT] 192.168.155.32 - - [02/Apr/2010:14:55:45 +0500] [192.168.55.230/sid#8634bd8][rid#87d38f8/initial/redir#1] (1) [perdir /var/www/ceramica/] pass through /var/www/ceramica/index.php |
------- Отправлено: 14:06, 02-04-2010 | #156 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Доброго дня! Помогите пожалуйста с проблемой.
на сайте есть URL типа: /image/small/ki436j9j.jpg Его нужно преобразовать к урлу: cache/image/small/{Первые два символа$1}/$1.jpg А если такого файла нет то перенаправить на скрипт image.php Пытаюсь сделать так: RewriteRule ^image/small/([a-z0-9_]+).jpg(/?)+$ cache/image/small/{Здесь споткнулся((((}/$1.jpg [L] RewriteRule ^image/(small|big|original|pda)/([a-z0-9_]+).(jpg|png|gif)(/?)+$ images.php?size=$1&name=$2&ext=$3 [L] Может быть сможете помочь? |
Отправлено: 08:09, 03-04-2010 | #157 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать RewriteRule ^([A-Za-z]+)/([A-Za-z]+)/$ index.php?lang=$1&page=$2 [L] RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ http://%{HTTP_HOST}/$1/$2/ [R,N] RewriteRule ^([A-Za-z]+)$ http://%{HTTP_HOST}/$1/about/ [R] RewriteRule ^([A-Za-z]+)/$ index.php?lang=$1&page=about [L] RewriteRule ^$ http://%{HTTP_HOST}/ru/about/ [N] Разве этот запрос удовлетворяет первому правилу? 127.0.0.1 - - [04/Apr/2010:12:19:45 +0700] [site/sid#87a6a8][rid#8d0d30/initial] (3) [perdir C:/Sites/home/site/www/] applying pattern '^([A-Za-z]+)/([A-Za-z]+)/$' to uri '' Заранее благодарен за помощь) |
Последний раз редактировалось droZel, 04-04-2010 в 09:25. Отправлено: 08:00, 04-04-2010 | #158 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:30, 04-04-2010 | #159 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Sham:
RewriteRule ^image/small/([a-z0-9_]{2})([a-z0-9_]+)\.jpg(/?)+$ cache/image/small/$1/$1$2.jpg аостался второй вопрос если этого файла нет то должно выполняться перенаправление следующим образом RewriteRule ^image/(small|big|original|pda)/([a-z0-9_]+).(jpg|png|gif)(/?)+$ images.php?size=$1&name=$2&ext=$3 [L] |
|
Отправлено: 19:19, 04-04-2010 | #160 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - 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 |
|