Як видалити 'index.php' з URL-адреси?


Відповіді:


17

Це можна зробити, включивши URL-адреси SEF та особливо параметр "Використовувати перезапис URL-адрес" у глобальній конфігурації Joomla.

Зауважте, що це призведе до помилки внутрішнього сервера, якщо ви не створили .htaccessфайл перед включенням параметра.

Існує сторінка документа, яка пояснює, які кроки необхідні для отримання цих приємних URL-адрес. Подивіться тут: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

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


Гаразд, я спробую. Це трохи дивно, що Joomla не генерує сам цей код, як зараз я думаю про це. Я думаю, я спробував цей варіант, і він насправді зазнав краху.
connersz

1
Саме це є причиною того, що Joomla не генерує сам код. Це дуже залежить від хоста, і ми не хочемо повністю зламати ваш сайт, включивши функцію :)
Bakual,

4

Ви можете додати цей код до початку Joomla's index.php:

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

Але будьте обережні, якщо ви скористаєтесь цим підходом, вам потрібно буде повторити цю програму під час оновлення.


Я б запропонував, що ви можете зробити це як необов'язковий хак, якщо перенаправлення та ReWrite не працювали в htaccess. Тож дійсне падіння назад
tristanbailey

домовились. саме так ми і дійшли до цього рішення. Ми не змогли виправити htaccess для належної роботи на сайті
ContextSwitch

4
  1. Змінено htaccess.txt на .htaccess
  2. Сайт> Глобальна конфігурація: використовувати перезапис URL-адрес (виберіть Так)
  3. Налаштування SEO, дружні URL-адреси пошукової системи (виберіть Так)

2

Ось загальний метод, якщо ваш сайт виходить з ладу за допомогою .htaccess:

  • Ви повинні прокоментувати один або обидва ці рядки:

Параметри + FollowSymLinks

та / або,

RewriteBase /

Це має добре працювати! Примітка. Ви коментуєте, даючи хештег для рядка "#"


1

Якщо ви використовуєте веб-сервер nginx , то ви можете використовувати наступний фрагмент для nginx.confфайлу конфігурації, де ваш Joomla! сайт обслуговується (в основному, просто додайте умова 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 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.