Все про пошукову систему Google


Додаткові домени і робота модуля сервера Apache mod_rewrite

Модуль mod_rewrite сервера Apache це прекрасна можливість надати динамічному сайту вигляду статичного для того, щоб опинитися в індексі багатьох пошукових машин, які абсолютно не розуміють значки присутні в динамічному посиланні типу ? і геть відмовляються індексувати сайти з динамічними посиланнями, хіба, що окрім головної сторінки.

Крім того модуль mod_rewrite дозволяє компенсувати недоліки індексації сайту з www і без Напевно відомо, що якщо для користувача один і тот-же сайт з www і без www це одне і те ж, то для багатьох пошукачів це два разних сайту і сторінки цих два яоби різних сайтів навіть можуть бути по разному індексовані.

Є ще одне цікаве застосування модуля mod_rewrite. Всім відомо, що практично будь-який сучасний хостинг окрім основного паркованого дозволяє на одному IP мати так звані додаткові домени. Їх цілком може бути декілька штук. Це означає, що хостинг дозволяє на одному аккаунте мати декілька сайтів. Найчастіше основний домен це великий динамічний сайт, де у файлі. Htaccess прописані правила роботи модуля mod_rewrite для цього сайту в яких входять правила перетворення статічесих посилань сайту в динамічних для правильної роботи скриптів сайту. Але якщо на додаткових доменах стоять, наприклад старенькі статичні сайти, а вони, як правило знаходяться в одній і той-же теці аккаунта public_html, то вони просто перестануть працювати, тому, що для них теж працюватиме правило з основного. Htaccess по перетворенню статичних посилань в динамічних. Вихід з цього достатньо простий. Оскільки в кожній теці з додатковим доменом також є файл. Htaccess те в нім досить прописати зворотне правило і статичний сайт запрацює, як і раніше.

А зараз трохи детальніше. Розглянемо описані моменти на прикладі якого-небудь динамічного посилання динамічного сайту mysite. Ru. Допустимо посилання з трьома параметрами і її складові:

mysite. Ru/index. Php? Sect=one subsect=two ref=three mysite. Ru/index. Php? Sect=one subsect=twomysite. Ru/index. Php? Sect=one

Це, щось подібне до сторінки вкладеною в розділ і підрозділ. На найдинамічнішому сайті такі посилання цілком можна прописати у вигляді:

mysite. Ru/one/two/three. Htmlmysite. Ru/one/two. Htmlmysite. 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]

Явно видно, що представлені вище за правило дозволяють працювати посиланням в будь-якому з набраного на сьогодні вигляду. Тоєсть:

mysite. Ru/one/two/three. Html або mysite. Ru/one/two/three/mysite. Ru/one/two. Html або mysite. Ru/one/two/mysite. Ru/one. Html або mysite. Ru/one/

Що найцікавіше працювати будуть також і рідні скриптам сайту динамічні посилання вигляду:

mysite. Ru/index. Php? Sect=one subsect=two ref=three mysite. Ru/index. Php? Sect=one subsect=twomysite. Ru/index. Php? Sect=one

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

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

Rewritecond %{Http_host} www\. Mysite\. Ru$rewriterule (.)$ mysite. Ru/textarea [R=301, L]

Ну в повному вигляді вміст файлу. Htaccess для модуля mod_rewrite динамічного сайту може бути наступне:

Directoryindex index. Php

# Запуск mod_rewriterewriteengine onoptions +FollowSymlinksRewriteBase /

Rewritecond %{Http_host} www\. Mysite\. Ru$rewriterule (.)$ 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_rewriterewriteengine onoptions +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 і додаткові домени

Схожі статті: