Автоматически убираем index.php через .htaccess
Убираем /index.php с 301 редиректом
Каждую страницу которая заканчивается на / можно открыть и через /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]. Естественно, все в конструкции <IfModule mod_rewrite.c> должно лежать. Код:
Options +FollowSymLinks
RewriteEngine On
#Добавил
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
#Добавил
RewriteRule ^(.*)index\.php$ $1 [R=301,L]
Забирать окончание /index.php через .htaccess
Если у вас не битрикс, то в корне сайта в .htaccess файле (если его нет, то создайте) нужно добавить такой код:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)index\.php$ $1 [R=301,L]
Надеюсь вы решили вашу задачу!