Come rimuovere "index.php" dagli URL?


Risposte:


17

Puoi farlo abilitando gli URL SEF e in particolare il parametro "Usa riscrittura URL" nella configurazione globale di Joomla.

Si noti che ciò genererà un errore interno del server se non è stato creato il .htaccessfile prima di abilitare l'opzione.

C'è una pagina di documento che spiega quali passaggi sono necessari per ottenere quei simpatici URL. Dai un'occhiata qui: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

Fondamentalmente devi rinominare il htaccess.txtfile trovato nella directory principale di Joomla. A seconda dell'hoster, sono necessari passaggi aggiuntivi.


OK, ci proverò. È un po 'strano che Joomla non generi quel codice in quanto ora ci penso. Penso di aver provato quell'opzione e di fatto si è schiantato.
Connersz,

1
Questo è esattamente il motivo per cui Joomla non genera il codice stesso. Dipende molto dall'host e non vogliamo interrompere completamente il tuo sito abilitando una funzione :)
Bakual,

4

Potresti aggiungere questo codice all'inizio dell'indice.php di Joomla:

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

Fai attenzione, se segui questo approccio, dovrai rifarlo quando esegui l'aggiornamento.


Suggerirei di poterlo fare come hack opzionale se il reindirizzamento e ReWrite non funzionassero in htaccess. Quindi un
fallback

concordato. è così che siamo arrivati ​​a questa soluzione. Non siamo riusciti a far funzionare correttamente la correzione htaccess a livello di sito
ContextSwitch

4
  1. Modificato htaccess.txt in .htaccess
  2. Sito> Configurazione globale: usa la riscrittura dell'URL (scegli Sì)
  3. URL ottimizzati per i motori di ricerca delle impostazioni SEO (Scegli Sì)

2

Ecco un metodo generale se il tuo sito si arresta in modo anomalo utilizzando .htaccess:

  • Dovresti commentare una o entrambe queste righe:

Opzioni + FollowSymLink

e / o,

RewriteBase /

Questo dovrebbe funzionare bene! Nota: fai commenti dando un hashtag per una riga "#"


1

Se stai utilizzando il web server nginx , puoi utilizzare il seguente frammento per il nginx.conffile di configurazione in cui il tuo Joomla! il sito è servito da (in pratica, basta aggiungere la condizione if dopo qualsiasi linea esistente in cui index index.phpappare la direttiva).

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

Maggiori dettagli sono disponibili su /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.