Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » mod_rewrite: документация, готовые решения, вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Открыть новую тему     Написать ответ в эту тему

Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mod_rewrite

Вот уже несколько раз встретился с этим вопросом. Недавно в тех. задании было указано что проект должен быть оптимизирован под поисковые системы. Поискав немного попал на mod_rewrite. Оказывается что mod_rewrite очень и очень полезная вещь. Вот несколько причин почему я решил разобраться с данным зверем:
 

  1. Если вы пишите форумы, сайт с новостями или любой сайт в котором есть конструкция hттp://mybestsite.com/article.php?n=3&page=1. Вы рано или поздно встретитесь с проблемой лицом к лицу, у таких сайтов есть огромный минус: адрес сайта выглядит для пользователей не "нормально", такой адрес не индексируется многими поисковыми системами, удаляется все после знака "?". Ниже приведенные ссылки для него все одни, но просмотрев их он получает разное содержимое (Что плохо сказывается на статистику вашего сайта)

    Код:
    hттp://mybestsite.com/article.php?n=3&page=1
    hттp://mybestsite.com/article.php?n=5&page=2
    hттp://mybestsite.com/article.php?n=6&page=7

    Пользователи у которых нету базовых знаний в Web программировании не могут понять что значит текст после article.php (?n=3&page=1). С использованием mod_rewrite можно на лету преобразовывать адреса типа

    Код:
    hттp://mybestsite.com/article.php?n=3&page=1

    в такой, более понятный и привычный для обыкновенных пользователей

    Код:
    hттp://mybestsite.com/articles/3/page1.htm

    А самое интересное что файл page1.htm вообще не существует, и пользователю не известен путь к файлу к которому он обращается и поисковые системы воспринимают такой адрес как обыкновенную ссылку на html страничку.
     
  2. С помощью mod_rewrite можно запретить скачивать ваши материалы с других сайтов, на собирание которых вы провели бессонные ночи. Например: у вас есть файл bestprogram.zip, у вас на страничке есть линк

    Код:
    <a href="hттp://mybestsite.com/download/bestprogram.zip">Download</a>

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

    Код:
    <a href="hттp://mybestsite.com/download/bestprogram.zip">Download</a>

    и она будет работать без проблем, за трафик будет платить вы а слава и благодарности этому придурку! С помощью mod_rewrite можно запретить cкачивание файлов если referer не ваш сайт

 
Думаю этого достаточно что бы потратить несколько часов на изучение данного материала. Ниже привожу документацию по данному вопросу:
Русские ресурсы

Английские ресурсы

 
Необходимые навыки:

 
Настройка журналирования (Лога):
 
Чтобы включить лог mod_rewrite необходимо в описании вашего виртуального хоста (обычно это файл httpd.conf) добавить две строчки:  

Код:
Код:RewriteLog /путь/к/лог/файлу  
RewriteLogLevel 9  

И перезапустить апача. Крайне не рекомендуется производить это на работающем сервере, так как объемы отладочной информации генерируются действительно большие и найти свое бывает очень сложно.
 
ps: Доп ссылки
Много полезных примеров, но на английском http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html




PHP тут не совсем к месту в названии, потому убрал /Cheery/

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 15:26 24-06-2005 | Исправлено: Cheery, 01:07 11-10-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
потому что нехорошо использовать знак = так, как используете его вы. уже говорил не раз.
хотите - используйте, но могут возникнуть проблемы.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:49 02-05-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
а как тогда использовать? слеш?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 16:21 03-05-2012 | Исправлено: Sutar, 19:09 05-05-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос, как найти русские символы в $das
пробивал

Код:
if(strripos($das, "а"))
...

 
- не работает.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 19:09 05-05-2012 | Исправлено: Sutar, 19:10 05-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот начинаю использовать mod_rewrite. Пишу такое:

Код:
 
RewriteRule ^page/([a-zA-Z0-9_-]+)$ page.php?n=$1 [L]
RewriteRule ^register/([a-z]+)$ register.php/?t=$1 [L]
 

Не работает. Почему - не пойму

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 18:09 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian
включите на время логгирование обработки и посмотрите.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:10 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Вроде нету. А $_GET['n'] не работает

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 18:15 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian

Цитата:
Вроде нету.

чего нет?
 
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:26 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
При добавление  

Код:
 
RewriteLogLevel 3
RewriteLog "/var/www/rewrite.log"
 

Ничего кроме ISE 500 не дает. В файл лог не пишется...

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 18:59 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian

Цитата:
Ничего кроме ISE 500 не дает

это можно добавить только в конфиг сервера, не в htaccess

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:00 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
это можно добавить только в конфиг сервера, не в htaccess

Добавил в VirtualHosts (Сорри, тупанул. Там еще и читать нужно ). Вот лог:
LOG

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 19:22 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian
ну вы же сами видите  

Цитата:
applying pattern '^page/([a-zA-Z0-9_-]+)\.html$' to uri 'page.php/x'

что и к чему применяется. вернее не применяется по понятной причине
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:24 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
вернее не применяется по понятной причине  

Мне, как новичку, в mod_rewrite причина не очень понятна

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 19:43 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian
ну у вас обращение идет как
Цитата:
page.php/x
, что не попадает под описываемое правило.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:57 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Посмотри сейчас лог. Сам сайт ubian.ru/page.
Цитата:
page.php/x
- такого не делал...

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 20:04 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian

Цитата:
такого не делал...  

делали. это то же самое, что и page/x при определенных настройках апача


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:32 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery

Цитата:
 при определенных настройках апача  

Действительно... А каких именно?

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 20:56 21-05-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ubian

Цитата:
А каких именно?

https://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:12 21-05-2012
ubian



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Большое спасибо! Нужно бы мне документацию Apache почитать...

Всего записей: 623 | Зарегистр. 22-07-2011 | Отправлено: 13:31 22-05-2012
holden321

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
&nbsp;

Всего записей: 148 | Зарегистр. 04-03-2009 | Отправлено: 22:15 30-05-2012 | Исправлено: holden321, 22:59 30-05-2012
JekaRus

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хочу сделать так чтоб при открытии главной страницы сайта site.ru происходил редирект на одну из страниц site.ru/страница-1.html Пробовал по разному писать в файле .htaccess правила редиректа
 
Redirect 301 http://site.ru http://site.ru/страница-1.html
 
Но в таком варианте редирект не работает, так как в файле .htaccess уже используется несколько правил редиректа
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
 
Названия страниц на кириллице. Как правильно сделать такой редирект с главной страницы?

----------
http://freonix.ru

Всего записей: 1046 | Зарегистр. 10-08-2005 | Отправлено: 21:49 26-06-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Интернет » Web-программирование » mod_rewrite: документация, готовые решения, вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru