Главный Каталог Статей РФ
87238 авторов, размещено 47366 статей, сейчас на сайте пользователей: 304 Статистика
Аватар acvarif.info

Дополнительные домены и работа модуля сервера Apache mod_rewrite

Категория:  Интернет  | Автор:  acvarif.info | Опубликовано: 03.04.2009
Модуль mod_rewrite сервера Apache это великолепная возможность придать динамическому сайту вид статического для того, чтобы оказаться в индексе многих поисковых машин, которые совершенно не понимают значки присутствующие в динамической ссылке типа ? & и напрочь отказываются индексировать сайты с динамическими ссылками, разве, что кроме главной страницы.

Кроме того модуль mod_rewrite позволяет компенсировать недостатки индексации сайта с www и без www. Доподлинно известно, что если для пользователя один и тот-же сайт с www и без www это одно и то же, то для многих поисковиков это два разных сайта и страницы этих двух яобы разных сайтов даже могут быть по разному индексированы.

Есть еще одно интересное применение модуля mod_rewrite. Всем известно, что практически любой современный хостинг кроме основного паркованного позволяет на одном IP иметь так называемые дополнительные домены. Их вполне может быть несколько штук. Это значит, что хостинг позволяет на одном аккаунте иметь несколько сайтов. Чаще всего основной домен это большой динамический сайт, где в файле .htaccess прописаны правила работы модуля mod_rewrite для этого сайта в которые входят правила преобразования статичесих ссылок сайта в динамические для правильной работы скриптов сайта. Но если на дополнительных доменах стоят, например старенькие статичные сайты, а они, как правило находятся в одной и той-же папке аккаунта public_html, то они просто перестанут работать, потому, что для них тоже будет работать правило из основного .htaccess по преобразованию статичных ссылок в динамичные. Выход из этого достаточно прост. Поскольку в каждой папке с дополнительным доменом также имеется файл .htaccess то в нем достаточно прописать обратное правило и статичный сайт заработает, как и прежде.

А теперь немного поподробнее. Рассмотрим описанные моменты на примере какой-либо динамической ссылки динамического сайта http://mysite.ru. Допустим ссылка с тремя параметрами и ее составляющие:

http://mysite.ru/index.php?sect=one&subsect=two&ref=three
http://mysite.ru/index.php?sect=one&subsect=two
http://mysite.ru/index.php?sect=one

Это, что-то вроде страницы вложенной в раздел и подраздел. На самом динамическом сайте такие ссылки вполне можно прописать в виде:

http://mysite.ru/one/two/three.html
http://mysite.ru/one/two.html
http://mysite.ru/one.html

Правила для преобразования таких ссылок в динамические, которые прописываются в файле .htaccess будут выглядеть следующим образом:

# Внутренние преобразования статических URL в динамические
RewriteRule ^(.*)index.html$ index.php [L]
RewriteRule ^([^/]+)/?.html$ index.php?sect=textarea [L]
RewriteRule ^([^/]+)/$ index.php?sect=textarea [L]
RewriteRule ^([^/]+)/([^/]+)/?.html$ index.php?sect=textarea&subsect= [L]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?sect=textarea&subsect= [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?.html$ index.php?sect=textarea&subsect=&ref= [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?sect=textarea&subsect=&ref= [L]

Явно видно, что представленные выше правила позволяют работать ссылкам в любом из принятых на сегодня видов. Тоесть:

http://mysite.ru/one/two/three.html или http://mysite.ru/one/two/three/
http://mysite.ru/one/two.html или http://mysite.ru/one/two/
http://mysite.ru/one.html или http://mysite.ru/one/

Что самое интересное работать будут также и родные скриптам сайта динамические ссылки вида:

http://mysite.ru/index.php?sect=one&subsect=two&ref=three
http://mysite.ru/index.php?sect=one&subsect=two
http://mysite.ru/index.php?sect=one

А это очень важно в том смысле, что если сайт не новый и был уже индексирован некоторыми поисковиками, которые понимают динамические ссылки, например такие, как Google, Yandex, то из индекса не пропадет ни одна страница. Просто при последующих, после добавления к сайту правил mod_rewrite, заходах поисковых ботов на сайт старые динамические ссылки сайта в индексе постепенно будут заменены на новые статичные.

Ниже приведенная записсь в файл .htaccess устранит разночтение для поисковиков для сайта с www и без, если сайт изначально находится в домене без www.

RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$
RewriteRule ^(.*)$ http://mysite.ru/textarea [R=301,L]

Ну в полном виде содержимое файла .htaccess для модуля mod_rewrite динамического сайта может быть следующее:

DirectoryIndex index.php

# Запуск mod_rewrite
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$
RewriteRule ^(.*)$ http://mysite.ru/textarea [R=301,L]

# Внутренние преобразования статических URL в динамические
RewriteRule ^(.*)index.html$ index.php [L]
RewriteRule ^([^/]+)/?.html$ index.php?sect=textarea [L]
RewriteRule ^([^/]+)/$ index.php?sect=textarea [L]
RewriteRule ^([^/]+)/([^/]+)/?.html$ index.php?sect=textarea&subsect= [L]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?sect=textarea&subsect= [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?.html$ index.php?sect=textarea&subsect=&ref= [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?sect=textarea&subsect=&ref= [L]

А еще ниже содержимое .htaccess для директории со статическим сайтом (обычно эта директория имеет название самго сайта без http и www) находящимся на дополнительном домене в папке public_html. Папка public_html это обычно папка корневой директории основного парованного домена сайта на хостинге

DirectoryIndex index.html

# Запуск mod_rewrite
RewriteEngine on
Options +FollowSymlinks
#RewriteBase /

# Переход с динамики на статику
RewriteRule ^(.*)index.php$ index.html [L]

Здесь все не сложно. Если например в браузере набран адрес индексной страницы статичного сайта, находящегося на дополнительном домене, то поскольку директория дополнительного домена находится в директории основного домена, тоесть в папке public_html, то сработает mod_rewrite и правило прописанное в основном .htacces RewriteRule ^(.*)index.html$ index.php [L] и пеереведет введенный адрес на динамику. Затем преобразованный адрес, попав в дополнительный домен, преобразуется обратно в статику после срабатывания mod_rewrite и правила прописанного в файле .htacces дополнительного домена RewriteRule ^(.*)index.php$ index.html [L]. То же будет происходить с адресом любой другой страницы статичного сайта на дополнительном домене.


Первоисточник: Mod_rewrite и дополнительные домены

Комментарии
К этой статье пока нет комментариев. Станьте первым! У нас гости не могут комментировать статьи. Пожалуйста авторизуйтесь или зарегистрируйтесь, чтобы прокомментировать.
Интересные статьи по теме
Аватар AnemoN
Накрутка лайков и подписчиков ВКонтакте Есть несколько хитрых и не очень методов, которые используются для т.н. "накрутки лайков".О заслуживающих внимания пойдет речь в этой статье....
Категория: Интернет | Автор: AnemoN | Добавлено: 17.02.2013
Аватар Jetti
Буксы — что это такое и как правильно выбрать букс для заработка Из-за коронавируса, "блуждающего" по всему миру вот уже второй год, у многих людей появилось огромное количество свободного времени. Одни стали тратить это время на хобби, другие — читать книги и смот...
Категория: Интернет | Автор: Jetti | Добавлено: 20.07.2021
Аватар Lizetta
Сколько времени уходит на создание сайта? Сколько времени тратит специалист на разработку сайта? В какой срок можно создать сайт и чем обуславливается это?...
Категория: Интернет | Автор: Lizetta | Добавлено: 03.06.2011
Аватар gul_itb
Как правильно представить информацию на сайте Зачем люди сидят в Интернете? В основном есть две причины – это развлечение и поиск информации. Ваш корпоративный сайт, конечно же тоже служит этим двум целям Интернет-общения. Даже бизнес-сайт о чем-...
Категория: Интернет | Автор: gul_itb | Добавлено: 26.10.2009
Аватар Marta22
Как улучшить страницу на сайте вконтакте Советы, как сделать страницу в vkontakte лучше...
Категория: Интернет | Автор: Marta22 | Добавлено: 21.08.2009
Свежие комментарии
Ну, вот это я понимаю, настоящая инструкция для тех, кто хочет не просто «привет, как дела», а чтобы дамы сами в личку ломились! Как говорится, техник...

Читать >>

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

Читать >>

Полностью поддерживаю подход, описанный в статье! Рисование — не просто творческое занятие, а ключевой инструмент для развития ребёнка. Как детский пс...

Читать >>

Интересная подборка ошибок, но не могу не высказать скепсис по поводу части рекомендаций. Например, о зарядке только до 80% — это логично с техническо...

Читать >>

Работал соцработником пару лет, и вот что не написали: это не только помощь людям, но и куча бумажек, отчётов и согласований. Бывает, половина времени...

Читать >>

Лучшие авторы
Аватар newzeland
Увлекаюсь спортивной обувью, маркетингом и копирайтином.

Читать

Аватар skomfort
ООО СТРОЙКОМФОРТ - Строительство, производство стр...

Читать

Напишите нам