
Сервери на Apache мають дуже хорошу і корисну функцію – mod_rewrite. Цю функцію сервера часто порівнюють із швейцарським ножем для роботи з URL, так як вона несе дуже важливі можливості. Кому-то сьогоднішній матеріал здасться досить “технічним”, але в SEO без цього ніяк.
- Зміна URL: запис динамічних URL як читаються, Літерних URL
- 301 редирект: говорить браузеру або пошуковому роботу що сторінка була переміщена.
Ці можливості дуже різні за своїми властивостями і несуть різні результати. Функція rewrite справляється з цими завданнями в. Conf файлі сервера, або в. Htaccess фото віртуального сервера.
Як працює функція rewrite?
Це команда, яку ви записуєте в один з файлів конфігурації вашого сервера. Багато записують цю команду в файл. Htaccess, який насправді відповідає лише за директорію на сервері, де він лежить.
Кожен запит браузера до сервера проходить через цей файл. Пам’ятайте, що при кожному відвідуванні сторінки вашого сайту відбувається декілька запитів до сервера: один до HTML, один до кожного css файлу, один до кожного файлу Javascript і один до кожної картинки.
Запитаний URL порівнюється з регулярним виразом, яка є першим параметром mod_rewrite у файлі. Htaccess. Якщо вони співпадають, то другий параметр у mod_rewrite використовується для створення HTML і надсилається назад браузеру. Це не обов’язково означає що сторінка перенаправляється … для цього треба використовувати редирект.
А чи потрібен вам взагалі редірект? Не поспішайте…
Не плутайте 301 редірект з іншими рішеннями URL в SEO. Всі вони робляться через mod_rewrite і дуже, дуже схожі, але виконують різні завдання.
Ви повинні використовувати 301 редірект коли хочете сказати браузеру або роботу пошукової машини “Цією сторінки тут більше немає, іди з цього новою адресою … я недавно її перемістив”. Ви:
- говорите що сторінки тут більше немає
- показуєте браузеру або боту її нову адресу
- говорите браузеру або боту, що переміщення тимчасове
- говорите боту, що все що посилалося на стару адресу сторінки має посилатися на новий, так як контент залишився той самий, його просто перемістили.
Якщо ви використовуєте mod_rewrite для маскування URL, Ви створюєте зв’язок URL сторінок, які хочете показати користувачам (у навігації, посиланнях в контенті, картах сайту і т. д.) з реальними URL цих сторінок, які не буде видно нікому.
Це робиться для того, щоб перевести стандартні URL, Які складаються з ID категорій, продуктів та інших параметрів, в літерні URL, що складаються з слів та несучі інформацію.
/ Products / details.asp? Pid = 11623 & catid = 42
Швидше за все, в наведеному URL категорія 42, ID продукту 11623. Текст, адреси картинок і інше зберігається в базі даних під номером 11623, а інформація про категорії зберігається в іншій таблиці. Для того, щоб вивести заголовок сторінки, мета-теги опису і ключових слів, веб-сервер шукає ці дані в категорії під номером 42 в базі даних. Якщо ви захочете виводити посилання на інші продукти, то потрібно зробити ще запити до таблиць в базі даних, де вони зберігаються.
Щоб зробити цю посилання більш “людяною” вона має виглядати приблизно так:
/ Products/necklaces/purple-amethyst-necklace-11623
Використовуючи таку посилання, ви також “витягуєте” всі параметри сторінки з бази даних, але вона вже виглядає більш логічною та інформативною. Посилання вашого сайту виглядають гарними, та й до того ж включають в себе ключові слова.
Використовуєте ви. Htaccess або просто 404, Рішення про використання 301 редіректу прийняти просто:
- якщо ви хочете повідомити пошуковику, що сторінка знаходиться в іншому місці, то використовуйте 301 редірект
- якщо ви хочете зробити красиві URL і замаскувати стандартні не слід використовувати 301 редирект.
Що відбувається з вагою посилань, якщо не використовувати 301 редірект?
Нічого. Ви також продовжуєте нарощувати посилальну масу і покращувати внутрішню перелінковка. До тих пір, поки пошукові боти бачать, що наша сторінка (приклад: / products/necklaces/purple-amethyst-necklace-11623) до цих пір існує, пошукач отримує весь її контент і додає повна вага посиланням разом зі статусом HTTP 200 (OK ).
Синтакс mod_rewrite
за правилом – oldstuff \. html $ newstuff.html
Перевіряємо що запитана сторінка oldstuff.html існує. Якщо існує, то йде перенаправлення на сторінку newstuff.html для її генерації і відправки користувачеві. Пошуковий робот або браузер до сих пір думає, що знаходиться на сторінці oldstuff.html.
Інші зауваження: знак позначає початок імені сторінки, тому пошуковик не переплутає, скажімо сторінку reallyoldstuff.html з нашою oldstuff.html. Знак $ позначає кінець імені файлу, тому бот не переплутає нашу сторінку oldstuff.html з сторінкою oldstuff.htmlly.
Що щодо того слеша в середині? Це перший параметр регулярного виразу, в якому кожен символ має збігатися з запитані. Те, що ми ставимо за знаком \ називається прихованих символів, тобто Ми не маємо на увазі кожен символ окремо, а ми говоримо що тут їх набір повністю.
Тепер, 301 редірект:
Це 301 редірект. Це редірект, так як в дужках ми використовуємо R. Це саме 301 редірект, тому що ми після знака одно ми поставили 301, а якби після знака одно ми нічого не прописали, то це був би 302 редірект, який означає, що зовсім недавно ми перемістили сторінку і не хочемо, щоб посилання на неї передавали вагу. У 99% випадків ви будете використовувати саме 301 редірект, а не 302.
У квадратні дужки укладено два параметри, відокремлені комою. Другий параметр “L” означає Last, то є останній. Він говорить, що сторінка в вираженні збігається з запитаної, і при наступних запитах в. Htaccess таку перевірку можна буде не робити. У 99% випадків використання 301 редіректу ви будете використовувати параметр “L”.
У 92% випадків використання операцій, не пов’язаних з 301 редиректів ви будете використовувати параметр “L”. Чому не в 99% випадків?
Іноді буває корисним використовувати кілька правил rewrite до одного URL. Припустимо, у вас є деяка кількість папок, що перебувають у першому рівні, з якими ви хочете виконати операції rewrite.
Також у вас є кілька вкладених у ці папки папок, з якими ви хочете виконати ці операції теж. У першому правилі ви можете замінити ім’я головної папки, а потім друге правило, яке буде перейменовувати вкладені в неї папки.
/ Prods/metal1/necklace-11623.htm
За першим правилом mod_rewrite URL можна поміняти / jewelry-products / замість / prods /, тому ми отримуємо:
/ Jewelry-products/metal17/necklace-11623.htm
За другим правилом ми замінимо / gold / замість / metal17 /:
/ Jewelry-products/gold/necklace-11623.htm
Скажімо у нас є каталог коштовностей з цінами і фотографіями названими [product ID]. Jpg. Таке ім’я фото дуже зручно для програміста і бази даних, але воно зовсім не прийнятно для SEO. Ви можете використовувати правила rewrite для зміну імені картинок, щоб пошукові боти “полюбили” наші картинки і взяли в індекс. У нашому випадку шлях буде наступним:
/ Images/necklaces/gold/amethyst-11623.jpg
замість цього:
/ Images/prods/11623.jpg
Тепер, правило rewrite застосовується не тільки для створення редіректу або перетворення URL.
MyOST: Потрібно пам’ятати, що 301 редірект і Яндекс – це поняття дуже пов’язані з часом, а точніше, Ви можете прочекати 2-3 місяці, поки дзеркальник не майже візитом сайт, а після ще трохи часу потрібно почекати для апдейта дзеркальник.
———————-
После просмотра “Тихий Океан” и “Братья по оружию” от HBO задумался над приобретением качественного телевизора. И вот я наконец-то созрел – решил купить FullHD Медиа плеер Popcorn Hour A-200 и к нему телевизор Порнослоника. Какую модель я пока ещё не знаю, нужно посмотреть насколько хватит денежек.


А в цей час на твітері