Убрать index.php из URL адреса в joomla 3

Хотя движок Joomla 3 и позволяет создавать ЧПУ ссылки (легко читаемые человеком и роботами), но у него все равно есть недостаток при их формировании. Он заключается в подстановке к любому адресу страницы названия файлa index.php.

В итоге ссылки получаются гораздо сложнее и не красивее, чем могли бы быть. Например, вместо /o-komanii ссылка имеет вид /index.php/o-komanii. И так с каждой ссылкой. Это формально может вредить SEO позициям сайта. Да и вообще, зачем нормальному сайту, в каждой ссылке иметь не нужный index.php? Решим эту проблему.

1. Для начала Откройте в админке "Система > Общие настройки". Справа в "Настройки SEO" выставите настройки, как на скрине (здесь главным является пункт "Перенаправление URL", который и позволяет избавиться от index.php):

2. Теперь найдите файл в корне сайта htaccess.txt. Переименуйте его так: .htaccess (заметьте впереди теперь точка, а расширения .txt не должно быть).

Откройте .htaccess файл на редактирование и в самом начале вставьте строки:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://VASH_SAIT.RU/ [R=301,L]

Где вместо VASH_SAIT.RU - вставьте домен вашего сайта.

Если говорить кратко, то эта конструкция позволит автоматически переадрисовывать все ссылки с index.php на такие же без index.php. Причем без потери ссылочной массы ссылки, если она ранее была проиндексирована где-угодно. Т.е. если в поисковике (или другом сайте) уже есть ссылка такого вида на ваш ресурс /index.php/o-komanii, то при переходе по ней, пользователь автоматические переадресуется на этот адрес: /o-komanii.

У кого-то данная конструкция может не заработать, поэтому можете попробовать другую (в ней не нужно явно указывать домен сайта):

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/index\.php/
RewriteRule ^index.php/(.*) /$1 [R,L]

Желаю успешных переадресаций!

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: