Mod-rewrite инструкция по решению типовых ошибок

Mod-rewrite инструкция по решению типовых ошибок

Mod-rewrite инструкция по решению типовых ошибок в этой статье я расскажу вам об наиболее часто встречающихся ошибках в конфигурации.

Возможные варианты ошибок:

1. Регистр URL Одна страница открывается по URL c разным регистром букв. Например по адресу http://site.ru/slug/alias и http://site.ru/SLUG/ALIAS одна и та же страница, один контент.

Поисковые системы будут относиться к таким адресам как к разным страницам. Так как содержимое этих страниц одно и тоже, то для поисковика это будут дубликаты.

Решение с помощью плагинов

Drupal — используйте модуль Global Redirect https://www.drupal.org/project/globalredirect

Решение с помощью .htaccess при наличии установленного модуля mod_speling.c

(Этот способ используйте на всех сайтах расположенных на сервере нашей компании)

<IfModule mod_speling.c>

CheckSpelling On

CheckCaseOnly On

</IfModule>

Решение с помощью .htaccess без модуля mod_speling.c

Сделать переадресацию на главную страницу с URL в которых присутствует буква(ы) в верхнем регистре.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} [A-Z]

RewriteRule ^(.*)$ ${lc:$1} [R=301,L]

</IfModule>

Решение с помощью конфигурации Apache в файле httpd.conf, apache2.conf или других.

Данный способ чаще всего не возможен, т.к. требует root доступа к настройкам сервера. Добавьте в секцию Location строки:

RewriteEngine On

RewriteMap lc int:tolower

RewriteCond %{REQUEST_URI} [A-Z]

RewriteRule (.*) ${lc:$1} [R=301,L]

2. Hash символ # в адресах

Если Вы используете адрес вида http://example.com/article/1543#how-to-boost-seo- внутри есть символ “#”. Hash-фрагменты не являются частью HTTP запросов и не отсылаются на сервер. По умолчанию поисковики игнорируют всё, что находиться после “#”.

В нашем примере проиндексируется только http://example.com/article/1543. Если мы хотим изменить поведение поисковика “по умолчанию”, то после “#” нужно добавить “!”. Например: http://www.example.com/ajax.html#!mystate

3. Неверно настроен роутинг URL адресов.

Например по адресу http://site.ru/product/cucumber и http://site.ru/product/cucumber/NddScsv8yKKMegJ/nm8jJ9Sy7LrXPFL открывается одна и та же страница. Такого быть не должно. Первый url работает правильно, а второй должен возвращать 404 страницу, т.к. такого адреса нет.

Для выявления такой ошибки при тестировании сайта seo.digital.tools генерирует произвольные URL адреса и делает запросы. Если сайт не возвращает 404 страницу, то это считается ошибкой.

Для решения необходимо настроить в cms правильную работу с ЧПУ и вывод 404 страниц.

В Bitrix ЧПУ настраивается для каждого компонента отдельно.

Для Drupal используйте модуль Views 404 https://www.drupal.org/project/views404

Добавить комментарий

%d такие блоггеры, как: