301 редирект убрать index php

Шпаргалка по реализации 301 редиректа

301 редирект нужен при «склейке» зеркал с www и без, при переводе сайта с HTTP на HTTPS, при переезде на новый домен, в случае изменения URL страницы и переносе её в другой раздел сайта. Как правильно настроить 301 редирект? Прилагаем инструкцию с примерами и шаблонами.

  • Краткая справка: что есть 301 редирект
  • Как задать простой редирект в .htaccess: инструкция
  • Самые распространенные 301 редиректы и их реализация
  • Особенности 301 редиректа, о которых полезно знать
  • Чего НЕ нужно делать при работе с 301 редиректом

Простой код состояния 301 (Permanent Redirect), а в русскоязычном сегменте 301 редирект — это способ перенаправить пользователя со старого адреса страницы/ресурса на актуальный. Проделывается это на уровне сервера. В SEO сложно преувеличить ценность 301 редиректа — он помогает исключить из выдачи неактуальные URL, заменяя их новыми. В итоге сохраняется 90-99% ссылочного веса страниц и их позиции в выдаче поисковых систем.

Если перевести техническое взаимодействие на простой человеческий язык, то буквально происходит следующий диалог:301 редирект:— Запрашиваемую страницу я перенес вот сюда, на этот адрес. Это постоянное новое местоположение, возвращать мы её не будем.Браузер:— Хорошо, понял. Отправляю посетителя сразу туда.

Настройку можно осуществить разными способами: скриптами, через HTML и PHP, через редактирование файла .htaccess. О последнем варианте расскажем подробно.

.htaccess — файл, позволяющий менять глобальные настройки и конфигурации веб-сервера Apache.

Иногда для настройки редиректов необходимо связаться с саппортом хостинга.

В скачанном с сайта файле .htaccess все редиректы прописывайте в конце, после исходного содержимого

  • Redirect 301 — инструкция, говорящая о том, что страница перемещена;
  • слэш / — указывает на то, что с верхнего уровня сайта (включая подкаталоги) всё будет переадресовано;
  • http://new-site.com — новая страница/сайт.

Переадресуем конкретную страницу:

301 редирект, перенаправляющий с сайта www на сайт без www:

301 редирект с /index.php на корень

301 редирект с /index.html на корень

301 редирект с URL со слэшем в конце на URL без слэша:

Файл .htaccess с двумя редиректами: с сайта с www на сайт без www и со страниц без / на страницы со / в конце

301 редирект со старого домена на актуальный домен:

Читайте также:  Background patterns with css

301 редирект со страницы на другую страницу:

301 редирект с http на https:

RewriteEngine On RewriteCond % ^80$ [OR] RewriteCond % =on RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]

301 редирект с https на http:

RewriteEngine On RewriteCond % ^443$ [OR] RewriteCond % =on RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

Простой редирект поможет справиться с дублями страниц, засоряющими выдачу. Например, для поисковых систем адреса https://www.site.ru/ и https://www.site.ru — совершенно разные, поэтому нужно определиться, какой вариант использовать: со слэшем (/) или без.

С помощью 301 редиректа убираем слэш:

С помощью 301 редиректа добавляем слэш:

Заменяем файлы .htm на файлы .html:

Методы редиректа с .htaccess срабатывают только на серверах с ОС Linux, с установленным Apache и включенным Mod-Rewrite. Кстати, .htaccess дополнительно нагружает сервер Apache, потому прописывать те же команды в hpptd.conf куда эффективнее, однако веб-мастерам редко предоставляют доступы к конфигурационным файлам.

На WordPress и некоторых схожих CMS наличествуют специальные модули, с помощью которых можно управлять редиректами. Поэтому если вы вдруг не обнаружили файл .htaccess, не торопитесь с выводами о том, что редиректов на сайте нет.

Избегайте исправления файла .htaccess напрямую через CMS сайта! В случае критической ошибки в действиях административная панель прекратит работу, а для восстановления потребуется FTP / SSH-доступ. Используйте для доступа к каталогам и файлам на сайте любой из FTP-клиентов, который вам удобен: FileZilla, WinSCP, FAR Manager, FireFTP, Total Commander, Cyberduck.

Запросите доступы FTP для проекта у менеджера по документам, зайдите на FTP-клиент, заполните окошки «хост», «имя пользователя», «пароль». В корневом разделе сайта найдите .htaccess, далее скачайте и сделайте бэкап перед началом работы.

«Склейка» и передача PR занимает довольно много времени (сроки зависят от скорости обработки роботами поисковых систем), поэтому не удаляйте старую страницу/сайт, пока не убедитесь в окончательном переносе.

  • Не применяйте иные статус-коды ответа сервера в случаях, где требуется 301 редирект. Совет распространяется на настройку https, настройку зеркал сайта с www и т. д.
    Самая частая ошибка, допускаемая по незнанию, — настройка временного 302 редиректа вместо постоянного 301 редиректа. В результате такой настройки роботы поисковых систем получают данные о том, что страницы перемещены на время, хотя это не так.
  • Опасайтесь запуска циклической переадресации. Из-за некорректной настройки .htaccess или неправильной работы плагина CMS может образоваться целая цепочка перенаправлений. Циклическая переадресация приводит к ошибке ERR_TOO_MANY_REDIRECTS при запросе перенесенной страницы.
  • Не перенаправляйте запросы на страницу 404. Регулярно проверяйте сайт на битые ссылки.
  • Не ставьте подряд два, три и более редиректов. Переизбыток перенаправлений увеличивает нагрузку на сервер, замедляя загрузку сайта. В результате теряется вес конечной страницы.
  • Не настраивайте переадресацию для страниц с несколькими URL, которые относятся к разным каталогам. В качестве альтернативы применяйте rel=canonical.
  • Не ставьте редиректы на похожие страницы, содержащие разную информацию. К примеру, на 2 схожих по характеристикам товара в интернет-магазине.
  • Не применяйте редиректы в работе со служебными файлами. Файл robots.txt при любых переездах оставляйте доступным, чтобы роботы Гугла и Яндекса свободно его распознавали и обрабатывали.
Читайте также:  Python num lines in file

Обязательно перепроверяйте результаты настройки. Работа с редиректами — дело тонкое, а от опечаток и ошибок, в итоге нарушающих работоспособность сайта, не застрахован никто. И помните о том, что браузеры кэшируют редиректы, поэтому проверку проводите только после очистки кэша. Удачи в реализации!

Источник

Как убрать index.html из URL

Предположим, вы заказали бесплатный хостинг для сайтов html в Рег.ру. По умолчанию когда вы открываете сайт в браузере, веб-сервер указывает в конце домена название индексного файла «index.html» или «index.php». Это негативно сказывается на поисковой позиции сайта. Для успешного продвижения в поисковых системах потребуется настройка переадресации с удалением «index.html» или «index.php» в конце адреса вашего сайта. Например, перенаправление с сайта «faq-reg.ru/index.html» на «faq-reg.ru»

Как убрать index.html или index.php через .htaccess

Откройте файл .htaccess в корневой директории сайта. Если у вас нет этого файла воспользуйтесь справкой: У меня нет файла .htaccess, что делать?

RewriteEngine On RewriteRule ^index\.html$ / [R=301,L]
RewriteEngine On RewriteRule ^index\.php$ / [R=301,L]

Если у вас несколько файлов index.html в разных папках, например, faq-reg.ru/support/index.html, вы можете убрать index.html из адресной строки, применив правило:

RewriteEngine On RewriteRule ^index\.html$ / [R=301,L] RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

Если у вас несколько файлов index.php в разных папках, например, faq-reg.ru/support/index.php, вы можете применить правило:

RewriteEngine On RewriteRule ^index\.php$ / [R=301,L] RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]

Готово, после внесения правила в .htaccess ваш сайт будет открываться без index.html или index.php в конце URL.

Источник

Избавляемся от index.php в адресах

Например, вот эти две страницы на вашем сайте отдают один и тот же контент, что для ПС есть дубль:

Настройка индексной страницы в 1С Битрикс

В Битриксе поможет нам в этом штатная константа BX_DISABLE_INDEX_PAGE, ее описание из официальной документации:

Может принимать значение true/false. Константа регулирует значение по умолчанию для параметра get_index_page функций GetPagePath(), CMain::GetCurPage(), CMain::GetCurPageParam().
Параметр get_index_page указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на «index.php». Если значение параметра равно true, то возвращается путь с «index.php», иначе — путь, заканчивающийся на «/». Параметр имеет значение, обратное значению константы.

В этом файле
/bitrix/php_interface/dbconn.php

Читайте также:  Мы из россии css

Добавьте эту константу, в любом месте
define(«BX_DISABLE_INDEX_PAGE», true);

Все, обновите страницу в публичной части и проверяйте, во всех ссылках должна исчезнуть индексная страница index.php

Если не исчезли, пробуйте сбросить весь кэш, особенно композитный, если не помогло, то могут мешать хитрые следы разрабов или сеошников например в файле urlrewrite.php или еще хоть где.

Так мы исправили проблему в адресах сайта, но это еще не все, если вы напрямую откроете страницу
/catalog/index.php

то она также откроется, никуда не денется, на самом сервере она есть, потому что в предыдущем примере мы убрали индексную страницу только из адресов (ссылок) Битрикса, а сами страницы напрямую открываются по правилам сервера, на сервере тут сложней, разными способами можно избавляться от этого, хоть в знаменитом файле .htaccess хоть в конфигах самого nginx или apache2

301 редирект с /index.php на / в .htaccess

В корне сайта находим файл .htaccess и добавляем в нем запись где-то после RewriteEngine On

RewriteCond % ^[A-Z]\ /index\.php\ HTTP/ RewriteRule ^index\.php$ https://example.com/ [R=301,L]

Пример для сайта работающего на защищенном протоколе https:// с 301 редиректом с www на без wwww , только замените в нем адрес example.com на свой, например tuning-soft.ru

 Options +FollowSymLinks RewriteEngine On RewriteCond % ^[A-Z]\ /index\.php\ HTTP/ RewriteRule ^index\.php$ https://example.com/ [R=301,L] RewriteRule ^(.*)=(.*) /$1$2 [L,R=301] RewriteCond % ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond % =off RewriteRule (.*) https://%% [QSA,L] RewriteCond % !-f RewriteCond % !-l RewriteCond % !-d RewriteCond % !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] RewriteRule .* - [E=REMOTE_USER:%] 

301 редирект с /index.php на / в nginx

На каждом сервере пути до конфигов могут быть совершенно разные, но в панели VESTA по умолчанию конфиги в папке пользователя по этому пути
/home/user1254/conf/web/snginx.conf

Для https|ssl это файл snginx.conf , а для http это файл nginx.conf где в секции server <. >примерно после строки set $php_sock 127.0.0.1:9018; необходимо добавить код ниже и заменить example.com

#301 редирект с www на без www if ($host = ‘www.example.com’ ) < rewrite ^(.*)$ https://example.com$1 permanent; >#301 редирект с index.php на / if ($request_uri ~* «^(.*/)index\.php$»)

Обязательно после изменений конфига nginx его необходимо перезагрузить, делается это, например, в PuTTY по SSH так:
#service nginx restart

Источник

Оцените статью