Как убрать 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, что делать?
Добавьте в конце файла .htaccess одно из правил, которое подходит для вашего случая:
Как убрать index.html из URL для главной страницы
Чтобы убрать index.html в конце адреса вашего домена, воспользуйтесь правилом:
RewriteEngine On RewriteRule ^index\.html$ / [R=301,L]
Как убрать index.php из URL для главной страницы
Чтобы убрать index.php в конце адреса вашего домена, воспользуйтесь правилом:
RewriteEngine On RewriteRule ^index\.php$ / [R=301,L]
Как убрать index.html из URL для всех страниц
Если у вас несколько файлов 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.html», будет переадресован на URL без него.
Как убрать index.php из URL для всех страниц
Если у вас несколько файлов index.php в разных папках, например, faq-reg.ru/support/index.php, вы можете применить правило:
RewriteEngine On RewriteRule ^index\.php$ / [R=301,L] RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]
Теперь любой запрос, который оканчивается на «index.php», будет переадресован на URL без него.
Сохраните файл с внесенными изменениями.
Готово, после внесения правила в .htaccess ваш сайт будет открываться без index.html или index.php в конце URL.
Удаление index.php из адресной строки браузера (WordPress)
Обычно index.php это файл, отвечающий за обработку всех запросов к сайту. Многие вебсерверы поддерживают технику, называемую перезаписью URL (URL rewriting), которая позволяет скрыть часть URL за кулисами.
Зачем нужно скрывать index.php в адресной строке? Вот почему:
- Наличие index.php в структуре ссылок WordPress не приносит никакой пользы ни вашим читателям, ни поисковой системе.
- Такие ссылки не дружественны поисковой системе, и вы упускаете возможность занять более высокое место в выдаче поисковиков.
Вот скриншот одного из веб-сайтов, где index.php виден в ссылке:
Обычно рекомендуется использовать имя поста в качестве ссылки для максимальной эффективности в SEO.
Удаление /Index.php и создание более дружественных ссылок для поисковых систем
Итак, как убрать index php из URL? Самое первое, что вы должны сделать перед внесением каких-либо изменений, это сделать резервную копию вашего WordPress. В этом случае достаточно сделать резервную копию вашей базы данных. Вы можете использовать любой популярный плагин, такой как WP DB backup, DB manager, чтобы сделать резервную копию базы данных WordPress.
После этого перейдите в Настройки > Постоянная ссылка:

Далее нужно нажать на название публикации и сохранить структуру постоянных ссылок.

WordPress автоматически позаботится о перенаправлении, а ваши старые ссылки будут перенаправлены на новые ссылки. Это постоянное перенаправление 301, которое означает, что ваш поисковый трафик не будет затронут.
Вот несколько дополнительных вещей, которые вы должны сделать:
- пересоздайте карту сайта
- повторно отправьте карту сайта в Yandex/Google/Bing
- используйте плагин Broken link checker для исправления внутренних ссылок.
Пройдет несколько дней, прежде чем вы увидите новые ссылки в поисковиках. Обычно повторная отправка карты сайта ускоряет процесс.
В этой статье мы узнали о том, как убрать index php из адреса.
Рекомендуемые статьи:
- WordPress — как отключить управление сайтом через xmlrpc
- Несколько причин медленной работы сайта на примере WordPress
- WordPress — смена домена сайта при помощи wp-cli
Как убрать php из URL адреса?
Допустим, у вас есть статический веб-сайт с различными PHP файлами. При запросе, о ни формируют URL, такой как например — domain.com/index.php или domain.com/serviers.php и т.п, и вы хотите убрать index.php из URL, сделав ЧПУ. После этого вы задаете себе вопрос — Как убрать php из URL ? Все это можно легко исправить с помощью mod rewrite …
Как убрать php из url адреса правильно
Конечно, вы можете создать отдельную папку для каждой страницы, а затем изменить имена файлов на index.php внутри каждой из этих папок. Это будет работать, но это не очень хорошее решение, но оно имеет право на существование если сайт создается «на коленке».
Однако mod rewrite — является отличным решением для этого рода задач. Mod Rewrite позволяет переписать URL-адреса для веб-сайтов на основе Apache.
Весь необходимый код размещается внутри файла с именем .htaccess, который помещается в корневой каталог вашего проекта. Давайте, теперь создадим такой файл.
Mod rewrite как включить ?
Сначала нужно проверить, включена ли перезапись на сервере с помощью ifmodule mod rewrite c :
Дальнейшее размещение вашего кода внутри этой проверки означает, что он будет работать только при включенной перезаписи.
Включаем работу механизма преобразований RewriteEngine :
RewriteEngine On
При необходимости, принудительно указываем использовать HTTPS:
RewriteCond % off RewriteRule (.*) https://%%
Кстати, если вы работаете локально и используете openserver, то настройку https ssl сертификата вы можете произвести используя мой мануал по ссылке из прошлых публикаций.
Устанавливаем корневой RewriteBase — базовый URL для преобразований в контексте каталога:
RewriteBase /
Теперь мы готовы определить URL-адреса, которые мы будем использовать. Именно два пункта ниже как раз и будут убирать php из url. Мы используем следующую структуру определения:
- RewriteRule, за которым следует имя, которое вы хотите использовать;
- После имени из пункта выше, следует фактический путь к странице .php
Например, следующий код уберет index php из url:
RewriteRule ^index$ index.php
С этими настройками, обращение к /about фактически загрузит /about.php, однако обратите внимание, что старый url /about.php все еще будет работать, но вы обновите все ссылки, чтобы перейти к /about.
Готовый пример перезаписи
Теперь собираем все вместе:
RewriteEngine On RewriteCond % off RewriteRule (.*) https://%% RewriteBase / RewriteRule ^about$ about.php RewriteRule ^services$ services.php
Скопируйте код выше в свой .htaccess файл на сервере и сохраните. Теперь, при обращении к страницам файл htaccess сможет убрать расширение php в конце и сделает вывод приятным и простым.
Автоматически убираем index.php через .htaccess
Каждую страницу которая заканчивается на / можно открыть и через /index.php. Думаю, каждый более-менее уважаемый вебмастер это знает и вдаваться в подробности не стоит. Мы думаем, что это не сильная проблема как для людей, так и для поисковых роботов. Но все же, что-бы было на 100% правильно, давайте сделаем так, что если страница открывается через слэш, то ее нельзя было открыть через /index.php или /index.html. Естественно, везде должен отадаваться 301 редирект. чтобы ранее проставленные ссылки не теряли свой вес.
Результат работы скрипта
Как забирать окончание /index.php в Битриксе
Битрикс самая популярная коммерческая CMS, да и мы ее используем, поэтому давайте рассмотрим пример на ней. Многие вебмастера пытаются решить подобную задачу через php, записав код в init.php. но тут возникает 2 ошибки:
- Редирект не будет работать при композите, потому что композит не грузит ядро битрикса;
- Большая нагрузка на сервер, т.к. запускается Apache для редиректа.
Вообщем, правильно делать такой редирект исключительно через.htaccess файл. Откроем файл .htaccess, который лежит в корне битрикса и просто добавим 2 строчки кода. RewriteBase / нужно дописать после RewriteEngine On, а в конец всех правил добавим RewriteRule ^(.*)index\.php$ $1 [R=301,L]. Естественно, все в конструкции должно лежать. Код:
Options +FollowSymLinks RewriteEngine On #Добавил RewriteBase / RewriteCond % !-f RewriteCond % !-l RewriteCond % !-d RewriteCond % !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] RewriteRule .* - [E=REMOTE_USER:%] #Добавил RewriteRule ^(.*)index\.php$ $1 [R=301,L]
Забирать окончание /index.php через .htaccess
Если у вас не битрикс, то в корне сайта в .htaccess файле (если его нет, то создайте) нужно добавить такой код:
RewriteEngine On RewriteBase / RewriteRule ^(.*)index\.php$ $1 [R=301,L]
Надеюсь вы решили вашу задачу!
