На это сайт пока нет времени. Хочу когда-нибудь переделать.

ЧПУ и настройка apache

Это писалось 3 года назад, надо бы переосмыслить этот материал

 

При разработке сайта, очень немаловажную роль играет человекопонятный url, или сокращённо чпу. ЧПУ — это url адреса которые можно легко запомнить и вводить самому. На тему «Почему ЧПУ так важно» написано множество статей, и в данной материале я хочу поделиться тем, как настраиваю его я.

При настройке чпу важную роль играет сервер который у вас установлен, apache или nginx. В статье будут примеры именно с apache и настройке через «.htaccess», т.к. с ним мне приходится сталкиваться чаще. 

Каждый url заканчивается и начинается по своему. Разновидностей одного адреса может быть бесчисленное количество, но самой распространенной проблемой является «www» в начале, и символ «/» в конце. Также есть поверье что «.html» лучше для seo, но лично мне так не кажется. Если в статье находится хороший уникальный материал — это главное условие для успешного поиска.

Для того чтобы чпу грамотно работало нужно настроить «.htaccess». В моём случае, я использую MODX REVO и настройки файла выглядят так:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Данный код перенаправляет url на с http на https, также можно убрать слеш в конце, например добавив:

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

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

Для того чтобы избежать подобных неприятностей, желательно пользоваться некоммерческими адекватными продуктами, наподобие MODX revo, Yii, Simpfony-подобные, RoR, ASP, jungle и прочие, в зависимости от нужд конкретного проекта. Стоит также заметить что настройка ЧПУ всегда индивидуальна, и не стоит просто брать и копировать что-то с одного проекта на свой. Обязательно ознакомьтесь с настройкой apache и особенностями вашего продукта.