В этом кейсе я расскажу как легко и быстро избавиться от «/index.php/» в ссылке.
Joomla: как убрать /index.php/ из ссылок сайта (Кейс #1).

Многие новички сталкиваются с проблемой, когда при включении SEF в настройках Joomla в ссылках появляется блок «/index.php/», например, «wedal.ru/index.php/about.html». В этом кейсе я расскажу как легко и быстро от него избавиться.

Index.php появляется в ссылке потому, что все обращения к сайту так или иначе проходят через этот файл. Для того чтобы этой части не было в URL следует выполнить два действия:

  1. В корне Joomla переименовать файл htaccess.txt в .htaccess . В Windows это сделать просто так не получится, только через файловый менеджер, например, Total Commander. По FTP, либо на сервере, переименовать файл просто.
  2. В общих настройках Joomla в области «Настройки SEO» нужно включить опцию «Перенаправление URL». При этом следует убедиться, что на хостинге включен mod_rewrite.

seo

После этого открываем в браузере главную страницу сайта и проверяем, что все ссылки изменили вид и работают нормально.

Если ссылки изменили вид, но не открывается ничего, кроме главной страницы, то нужно решать вопрос относительно mod_rewrite с технической поддержкой хостинга, на котором у вас размещается сайт. Они должны подсказать решение, которое будет работать у них, хотя на большинстве нормальных хостингов все заработает сразу после выполнения вышеописанных пунктов.

Об авторе
Об авторе
Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

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

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

0 # web11 11.12.2012 04:58
спасибо, все заработало)
Ответить | Ответить с цитатой | Цитировать
0 # Misha 11.12.2012 11:50
А если в корне joomla сайта 2 файла htaccess.txt a другой .htaccess
Приведет ли это к замещению одного файла на другой если htaccess.txt переименовать на .htaccess?


Или, что сделать, чтобы не было взаимозамещения?
Ответить | Ответить с цитатой | Цитировать
0 # Sinister 11.12.2012 16:45
Добрый день!
Небольшой ликбез по утверждению: "В Windows это сделать просто так не получится".
Если Вы пользуетесь Windows 8, то сделать это несложно: заходим в меню "Вид" и ставим галочку "Расширения имен файлов":

После чего расширения файлов будут отображаться в проводнике и появится возможность их менять. На счет предыдущих версий Windows - не в курсе, но возможно и там есть такая галочка.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 12.12.2012 02:19
Sinister, не получится не из-за того, что скрыто расширение файла, а из-за того, что Windows будет думать, что это пустое имя файла с расширением .htaccess, а пустые имена файлов не допускаются.
Ответить | Ответить с цитатой | Цитировать
0 # sb45 11.12.2012 17:06
Цитирую Misha:
А если в корне joomla сайта 2 файла htaccess.txt a другой .htaccess
Приведет ли это к замещению одного файла на другой если htaccess.txt переименовать на .htaccess?
Или, что сделать, чтобы не было взаимозамещения?

А зачем вам такие замещения, отредактируйте нужный вам файл и оставьте один, только имя у него должно быть .htaccess
Ответить | Ответить с цитатой | Цитировать
0 # Misha 11.12.2012 18:18
У меня в файле htaccesss.txt 76 строк текста с кодами,
в файле .htaccess следующее
AddDefaultCharset utf-8
AddCharset utf-8 *

CharsetSourceEnc utf-8
CharsetDefault utf-8



какие последствия могут быть, если из файла с 6 строками скопирую содержимое в файл с 76 строками?
Что посоветуете?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 12.12.2012 02:20
Misha, все правильно. Переименуйте стандартный htaccess Joomla и перенесите в него эти строчки. А вообще, проверьте, возможно все будет нормально работать и без них.
Ответить | Ответить с цитатой | Цитировать
+1 # skyadmin 06.01.2013 20:18
Тем у кого сайт установлен не в корневую папку, а в поддиректорию, обязательно в .htaccess установить правило:
RewriteBase//

Ну и для должно быть установлено AllowOverride All
Ответить | Ответить с цитатой | Цитировать
0 # Lalla78 13.03.2014 12:22
Цитирую skyadmin:
Тем у кого сайт установлен не в корневую папку, а в поддиректорию, обязательно в .htaccess установить правило:
RewriteBase//

Ну и для должно быть установлено AllowOverride All


А если этой строки нет? Куда ее вписывать, надо ли убирать в ручную в яндекс вебмастерс дубли, ждать пока сами исчезнут?
Ответить | Ответить с цитатой | Цитировать
0 # Alexander 14.02.2013 19:04
Доброго времени суток, уважаемые знатоки. Помогите решить следующую проблему. На сайте включил «Перенаправление URL», предварительно переименовав файл htaccess.txt в .htaccess. Все работало отлично. Проблема возникла после восстановления сайта из резервной копии. После восстановления сайт перестал работать. Помогло отключение «Перенаправление URL» и обратное переименование .htaccess в htaccess.txt. Как мне теперь убрать /index.php/ из ссылок сайта?
P.S. Резервная копия сайта была сделана с помощью компонента akeeba backup. Архив скачал из админки через web-интерфейс.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 15.02.2013 01:49
Alexander, скачайте Joomla с официального сайта, возьмите из нее htaccess и замените им ваш. Должно помочь.
Ответить | Ответить с цитатой | Цитировать
0 # Raya 06.03.2013 05:31
А у меня в общих настройках нет "настройки seo". Почему? Что делать?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 07.03.2013 03:06
Raya, какая версия Joomla?
Ответить | Ответить с цитатой | Цитировать
0 # Raya 07.03.2013 06:44
Цитирую Wedal:
Raya, какая версия Joomla?

1.5
Ответить | Ответить с цитатой | Цитировать
0 # kostya 10.10.2013 06:39
а почему у Вас на сайте при нажатии на логотип оказываешься на http://wedal.ru/index.php? так задумано?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 11.10.2013 02:30
kostya, нет. Это уже пару лет руки не доходят исправить :-)
Ответить | Ответить с цитатой | Цитировать
0 # Юлия 04.12.2013 12:18
Много всего написано по поводу первичной seo оптимизации Joomla. А вот у меня возникла одна проблемка после включения перенаправления url. Все страницы на сайте перестали работать, выдавая ошибку 500. Пробовала и ручками все исправить, кроме того сайт стал выдавать на главной странице просто бешенные url по типу juliart.by/juliat/juliart/juliart/juliart и так до бесконечности. Что я только не делала. И вот ответ как оказалось очень простой. Надо прописать в файле cofiguration.php в строке public $live_site= "" в кавычках свой сайт http://juliart.by И все заработало моментально. Можете посмотреть сайте. Буду рада если это тоже кому то поможет, так как у меня на решение проблемы ушло коло месяца, перелапачено было куча литературы. А оказалось все просто.
Ответить | Ответить с цитатой | Цитировать
0 # site 07.02.2014 15:46
это функция от разработчиков joomla должна была сделать такой стандарт. посоветуйте разработчикам joomla это. побольше советов и они сделают такой стандарт.
Ответить | Ответить с цитатой | Цитировать
0 # site 07.02.2014 16:10
надо просить разработчиков joomla улучшать joomla и предлагать конкретно идеи или даже уже готовые разработки на сайт joomla.org.
Ответить | Ответить с цитатой | Цитировать
0 # site 23.08.2014 16:42
почему joomla.org сразу не сделала такие норм ссылки в движке чтобы не ковырять ничего ?
пожалуйста ребята все пишите просьбы предложения на сайт joomla.org и они уже точно исправят joomla.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 25.08.2014 03:16
site, это связано исключительно с техническими особенностями работы серверов и не является какой-то недоработкой. Просто нужно помнить об этой особенности.
Ответить | Ответить с цитатой | Цитировать
0 # Настя 10.01.2015 21:42
Доброго времени суток!

Настроила на локальном компьютере. Апач 2.2.2, PHP 5.3.10? MySQL 5.5. Выдает ошибку 404 при открытии любого материала. Как именно надо настроить mod_rewrite в Апаче? Потому что мне надо срочно определяться, делать сайт на Джумле или на чем еще, наличие index.php совершенно недопустимо... (((
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 13.01.2015 15:08
Настя, нужно взять Denwer и не мучиться с ручной настройкой. Ваша проблема однозначно связана с htaccess и/или mod_rewrite. Вы переименовали htaccess.txt в .htaccess в корне сайта?
Ответить | Ответить с цитатой | Цитировать
0 # Настя 14.01.2015 11:37
Все рекомендации сделаны, mod_rewrite в апаче прописан в httpd.conf, проверено - файл по указанному пути есть, .htaccess тоже есть, я им постоянно и для других целей пользуюсь, поэтому это первое, что я делаю после установки. Все безнадежно, вдобавок сайт после экспериментов упал )))
Денвер я не люблю, предпочитаю понимать, что я делаю - и этой проблемы это тоже касается, хостеры разные бывают, некоторым надо разжевывать, что от них требуется.
К тому же я устанавливаю несколько сайтов на компе, очень удобно - на одном экспериментируешь/засоряешь, на другой отлаженное ставишь.
К слову, на хостинге 1gb все работает как надо, но вообще не хотелось бы отлаживать сайт в инете... (((
Ответить | Ответить с цитатой | Цитировать
0 # Вит 30.01.2021 19:40
спасибо за заметку. mod_rewite это вотчина апача, а что делать если у меня сайты крутятся на nginx? Ему откровенно наплевать на файл .htaccess и функцию Перенаправления URL.
Ответить | Ответить с цитатой | Цитировать
0 # Guest 16.05.2023 13:44
Спасибо тебе добрый человек!
Ответить | Ответить с цитатой | Цитировать