Jak usunąć plik „index.php” z adresów URL?


Odpowiedzi:


17

Możesz to zrobić, włączając adresy URL SEF, a zwłaszcza parametr „Użyj przepisywania adresów URL” w globalnej konfiguracji Joomla.

Pamiętaj, że spowoduje to wygenerowanie wewnętrznego błędu serwera, jeśli nie utworzyłeś .htaccesspliku przed włączeniem opcji.

Istnieje strona z dokumentami wyjaśniająca, jakie kroki należy wykonać, aby uzyskać te ładne adresy URL. Zajrzyj tutaj: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

Zasadniczo musisz zmienić nazwę htaccess.txtpliku znalezionego w katalogu głównym Joomla. W zależności od hosta konieczne są dodatkowe kroki.


OK, spróbuję. To trochę dziwne, że Joomla nie generuje tego kodu, jak teraz o nim myślę. Myślę, że wypróbowałem tę opcję i faktycznie się zawiesiła.
connersz

1
Właśnie dlatego Joomla nie generuje samego kodu. To zależy w dużej mierze od hosta i nie chcemy całkowicie zepsuć Twojej witryny, włączając funkcję :)
Bakual

4

Możesz dodać ten kod na początku indeksu Joomla.php:

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

Uważaj jednak, jeśli zastosujesz to podejście, będziesz musiał je powtórzyć podczas aktualizacji.


Sugerowałbym, abyś mógł to zrobić jako opcjonalny hack, jeśli przekierowanie i ReWrite nie działały w htaccess. Więc ważny powrót
tristanbailey

Zgoda. właśnie tak doszliśmy do tego rozwiązania. Nie mogliśmy sprawić, aby poprawka htaccess działała poprawnie w całej witrynie
ContextSwitch

4
  1. Zmieniono htaccess.txt na .htaccess
  2. Witryna> Konfiguracja globalna: Użyj przepisywania adresów URL (wybierz Tak)
  3. Ustawienia SEO Wyszukiwarki URL-e (wybierz Tak)

2

Oto ogólna metoda, jeśli Twoja witryna ulega awarii przy użyciu .htaccess:

  • Powinieneś skomentować jeden lub oba z tych wierszy:

Opcje + FollowSymLinks

i / lub

RewriteBase /

To powinno działać dobrze! Uwaga: komentujesz, podając hashtag dla wiersza „#”


1

Jeśli używasz serwera WWW Nginx , możesz użyć następującego fragmentu nginx.confpliku konfiguracyjnego, w którym znajduje się Joomla! witryna jest obsługiwana z (po prostu dodaj warunek if po istniejących wierszach, w których index index.phppojawia się dyrektywa).

#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;  }

Więcej szczegółów znajduje się na /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.