Как удалить файл index.php из URL?

Ответы:

17

Вы можете сделать это, включив URL-адреса SEF и особенно параметр «Использовать перезапись URL» в глобальной конфигурации Joomla.

Обратите внимание, что это приведет к внутренней ошибке сервера, если вы не создали .htaccessфайл перед включением этой опции.

Есть страница документа, объясняющая, какие шаги необходимы, чтобы получить те хорошие URL. Посмотрите здесь: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

В основном вы должны переименовать htaccess.txtфайл, найденный в вашем корневом каталоге Joomla. В зависимости от вашего хостера, дополнительные шаги необходимы.

Bakual
источник
Хорошо, я попробую. Немного странно, что Joomla сам не генерирует этот код, как я сейчас думаю. Я думаю, что попробовал этот вариант, и он действительно потерпел крах.
Коннерс
1
Именно поэтому Joomla не генерирует сам код. Это сильно зависит от хоста, и мы не хотим полностью сломать ваш сайт, включив функцию :)
Bakual
4

Вы можете добавить этот код в начало index.php Joomla:

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

Будьте осторожны, если вы воспользуетесь этим подходом, вам придется повторить его при обновлении.

ContextSwitch
источник
Я бы посоветовал вам сделать это как дополнительный хак, если перенаправление и ReWrite не работают в htaccess. Так что
верное отступление
согласовано. это на самом деле, как мы добрались до этого решения. Нам не удалось заставить исправление htaccess работать должным образом по всему сайту
ContextSwitch
4
  1. Изменил htaccess.txt на .htaccess
  2. Сайт> Глобальная конфигурация: использовать перезапись URL (выберите Да)
  3. Настройки SEO оптимизированные для поисковых систем URL (выберите Да)
Вике-Nguyen
источник
2

Вот общий метод, если ваш сайт падает с помощью .htaccess:

  • Вы должны прокомментировать одну или обе эти строки:

Опции + FollowSymLinks

и / или,

RewriteBase /

Это должно работать нормально! Примечание: вы делаете комментарии, давая хэштегом для строки "#"

tgyozo
источник
1

Если вы используете веб-сервер nginx , то вы можете использовать следующий фрагмент для nginx.confфайла конфигурации, где находится ваш Joomla! site обслуживается (в основном, просто добавьте условие if после любых существующих строк, где index index.phpпоявляется директива).

#https://stackoverflow.com/a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

Более подробную информацию можно найти по адресу /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

CNST
источник