1 Востаннє редагувалося Monolith (20.12.2016 23:28:28)

Тема: Чи треба щоб адреса закінчувалася на "/"

Зараз пишу блог і в мене сторінки в основному типу "site.com/home", "site.com/home/page/2", "site.com/post/2" тощо. Помітив, що на багатьох сайтах(той же Хабрахабр або Codeguida) є в кінці завжди слеш("/"). Якщо його прибрати, то при перезавантаженні сторінки він все-рівно з'являється. Почав шукати в Інтернеті. Знайшов, що для пошукових систем в принципі по барабану на що у вас закінчується сайт(хоча і потрапляв на думки, що вітається SEF URL(Friendly URL)). На replace.org.ua, наприклад сторінка завантажується як зі слешем так і без. Продовжив пошуки і знайшов, що погано для семантики якщо сторінка сайту доступна з двох адрес.
Тому вирішив все-таки зробити всі сторінки зі "/" на кінці. Тому питаюся у вас, як це правильніше зробити та якщо раптом є розробники сайту зі схожою реалізацією. Як краще зробити? По-суті наскільки я зрозумів просто треба код, який буде перевіряти чи є в кінці адреси "/", якщо немає - дадавати. Як це реалізувати? На mod_rewrite apache?

UPD (додано через 20 хвилин блукання по Інтернету) Читаючи пару цікавих статей(наприклад http://imperacms.ru/docs/seo/url-slash-or-not) зрозумів, що слеш на кінці, як мінімум нелогічний). Але питання так і залишилося. Мені просто за допомогою mod_rewrite apache відловлювати всі адреси зі слешем на кінці і переадресовувати на сторінку без нього? Як гадаєте, це не сильно навантажує і сповільнює роботу сайту?

Ось знайшов такий код(видаляє слеш з кінця і перенаправляє користувача на сторінку без слешу):

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Мене більше хвилює чи є якість "підводні камені" у моєму вирішенні цієї проблеми...

Подякували: 221VOLT1

2

Re: Чи треба щоб адреса закінчувалася на "/"

на nginx робити переадресацію як мінімум логічніше - бо це фронт-сервер, а апач - бек-сервер

якщо не помиляюсь - будь-який сервер можна налаштувати на інший роздільник (наприклад ";" замість "/"),
крім того можна зробити інший роздільник і парсити його вручну))
(йой, то щось наніч на якісь збочення мене тягне :[ )

не впевнений що через відсутність "/" можуть бути якісь серйозні проблеми(та чи взагалі якісь) - напевно це дрібниця про яку зовсім не варто паритись

Подякували: Monolith1

3

Re: Чи треба щоб адреса закінчувалася на "/"

221VOLT написав:

на nginx робити переадресацію як мінімум логічніше - бо це фронт-сервер, а апач - бек-сервер

якщо не помиляюсь - будь-який сервер можна налаштувати на інший роздільник (наприклад ";" замість "/"),
крім того можна зробити інший роздільник і парсити його вручну))
(йой, то щось наніч на якісь збочення мене тягне :[ )

не впевнений що через відсутність "/" можуть бути якісь серйозні проблеми(та чи взагалі якісь) - напевно це дрібниця про яку зовсім не варто паритись

Та я теж так думаю, але всюди пишуть(і статі доволі  нові), що доволі погано якщо на одну сторінку є дві робочі адреси...

Подякували: 221VOLT1

4

Re: Чи треба щоб адреса закінчувалася на "/"

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

слеш - це точно дублікат?
точно дублікат це коли є та ж сторінка на www і без, на https і без, на різних доменах контент точка в точку...

Подякували: Monolith1

5

Re: Чи треба щоб адреса закінчувалася на "/"

URL пішли від UNIX формату шляхів, тому "/" - це стандартний розділювач. Також, сайти можуть містити відносні посилання, які будуть доповнятися до базового:
www.somesite.com/abs_path/relative_path (бо інакше може вийти www.somesite.com/abs_pathrelative_path)
Ну і просто прийнята норма, коли слеш наприкінці позначає папку, а без - файл. Можна погортати офіційні доки по цьому - RFC 1738, погуглити, що радять всякі вебмастери і т.д. і т.п.

Подякували: Monolith, 221VOLT2