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

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

 

Аватара для Siava one

Ветеран


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

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


Sham
Всё здовово! Разобрался, спасибо за помощь

-------
Siava.ru


Отправлено: 15:31, 03-02-2007 | #91



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

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


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

Ветеран


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

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


Sham а как можно с помощью rewrite поймать урл http://mysite.ru/. или http://mysite.ru/? и перенаправить на http://mysite.ru/404.html ??

а то при набирании этих урлов я попадаю на индексный файл, а надо на 404.html..

т.е. как отловить точку и знак вопроса?

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


Отправлено: 15:47, 24-02-2007 | #92


Deadooshka


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

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


Код: Выделить весь код
RewriteCond %{THE_REQUEST} [\?\.]$
RewriteRule .* 404.html [L]

Отправлено: 09:55, 25-02-2007 | #93


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

Ветеран


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

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


Sham такой код не работает(

Код: Выделить весь код
DirectoryIndex index.html

RewriteEngine On
RewriteCond %{THE_REQUEST} [\?\.]$
RewriteRule .* 404.html [R]
при запросе http://site.ru/?

отдается:
PHP код: Выделить весь код

GET /? HTTP/1.1

Accept
image/gif
Accept
-Languageru
Accept
-Encodinggzipdeflate
User
-AgentMozilla/4.0 (compatibleMSIE 6.0Windows NT 5.1SV1)
Hostforum.myhtml.ru
Connection
Keep-Alive

HTTP
/1.1 403 Forbidden
Date
Sun25 Feb 2007 10:49:54 GMT
Server
Apache/1.3.37 (Unix)
Connectionclose
Transfer
-Encodingchunked
Content
-Typetext/htmlcharset=iso-8859-

и при запросе при запросе http://site.ru/.

отдается:
PHP код: Выделить весь код

GET /. HTTP/1.1

Accept
image/gif
Accept
-Languageru
Accept
-Encodinggzipdeflate
User
-AgentMozilla/4.0 (compatibleMSIE 6.0Windows NT 5.1SV1)
Hostforum.myhtml.ru
Connection
Keep-Alive

HTTP
/1.1 403 Forbidden
Date
Sun25 Feb 2007 10:52:44 GMT
Server
Apache/1.3.37 (Unix)
Connectionclose
Transfer
-Encodingchunked
Content
-Typetext/htmlcharset=iso-8859-

файла 404.html не существует, но даже если создать заголовки отдаются теже, т.е. - не работает

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


Отправлено: 13:56, 25-02-2007 | #94


Deadooshka


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

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


E-mail
Цитата:
RewriteRule .* 404.html [R]
полный URL надо писать, коли R ставишь...
у меня там помарочка Правильно так:
Код: Выделить весь код
RewriteEngine On
RewriteCond %{THE_REQUEST} /[\?\.]\ .
RewriteRule .* 404.html? [L]

Отправлено: 01:40, 26-02-2007 | #95


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

Ветеран


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

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


Sham
Цитата:
полный URL надо писать, коли R ставишь...
ничего подобного, зависит от того что реврайте как база стоит. урл достаточно относительным этой базы писать, плюс ко всему надо не забывать экранировать спец символы, вот так например:
Код: Выделить весь код
RewriteEngine On
RewriteCond %{THE_REQUEST} \/[\?\.]\ .
RewriteRule .* \/404\.html\? [R]
только честн говоря я не понял как работает кусок после закрывающейся квадратной скобки? о_О
и еще, почему если изменить %{THE_REQUEST} на %{REQUEST_URI} работает по разному?

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


Отправлено: 22:48, 26-02-2007 | #96


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

Ветеран


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

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


а на конце знак вопроса, чтобы при запросе с вопросом, вопрос отрубало?)
а почему так, происходит?

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


Отправлено: 23:02, 26-02-2007 | #97


Deadooshka


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

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


E-mail
Цитата:
ничего подобного, зависит от того что реврайте как база стоит
либо абсолютный путь с R, либо полный URL - можно без R
Цитата:
надо не забывать экранировать спец символы
ессно - там где регулярка, а где замена - afaik только $ и % (символы подстановки)
Цитата:
почему если изменить %{THE_REQUEST} на %{REQUEST_URI} работает по разному?
RTFM по значениям переменных
Цитата:
а на конце знак вопроса
чтобы отрубить query_string

Отправлено: 23:52, 26-02-2007 | #98


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

Ветеран


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

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


Sham
Цитата:
RTFM по значениям переменных
вот я и удивляюсь


а
Цитата:
как работает кусок после закрывающейся квадратной скобки? о_О
?

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


Отправлено: 19:09, 27-02-2007 | #99


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


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

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


Добрый день, ночь, утро...

глубого извиняюсь если баяню, не хватило терпения все перечитать.
Есть такая проблемма:
PHP код: Выделить весь код

RewriteRule ^([a-z0–9]+)(/?)+$ /index.php?path=$[NC
RewriteRule ^([a-z0–9]+)/([^/]*)(/?)+$ /index.php?path=$1&sub=$[NC

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

При таком раскладе обрабатываются и запросы из тела страницы к директориям:

http://site.com/i/
http://site.com/i/pageimg/
http://site.com/css/
http://site.com/js/

и естественно сробатывает подстановка описаная в примере, как можно исключить данные директории, чтобы они не обрабатывались... А то не прикольно получается...

Отправлено: 03:19, 22-12-2007 | #100



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




 
Переход