Comment supprimer le 'index.php' des URL?

Réponses:

17

Vous pouvez le faire en activant les URL SEF et en particulier le paramètre "Utiliser la réécriture d'URL" dans la configuration globale de Joomla.

Veuillez noter que cela générera une erreur de serveur interne si vous n'avez pas créé le .htaccessfichier avant d'activer l'option.

Il y a une page doc expliquant quelles étapes sont nécessaires pour obtenir ces belles URL. Jetez un œil ici: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

Fondamentalement, vous devez renommer le htaccess.txtfichier trouvé dans votre répertoire racine Joomla. Selon votre hébergeur, des étapes supplémentaires sont nécessaires.

Bakual
la source
OK, je vais essayer. C'est un peu bizarre que Joomla ne génère pas ce code lui-même comme maintenant j'y pense. Je pense que j'ai essayé cette option et elle s'est en fait écrasée.
connersz
1
C'est exactement la raison pour laquelle Joomla ne génère pas le code lui-même. Cela dépend beaucoup de l'hôte et nous ne voulons pas casser complètement votre site en activant une fonctionnalité :)
Bakual
4

Vous pouvez ajouter ce code en haut de l'index.php de Joomla:

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

Attention cependant, si vous adoptez cette approche, vous devrez refaire cela lors de la mise à niveau.

Changement de contexte
la source
Je suggère que vous puissiez le faire comme un hack facultatif si la redirection et la réécriture ne fonctionnaient pas dans htaccess. Donc un repli valide
tristanbailey
D'accord. c'est en fait ainsi que nous sommes arrivés à cette solution. Nous n'avons pas pu faire fonctionner correctement le correctif htaccess sur tout le site
ContextSwitch
4
  1. Changement de htaccess.txt en .htaccess
  2. Site> Configuration globale: utilisez la réécriture d'URL (choisissez Oui)
  3. URL optimisées pour les moteurs de recherche (choisissez Oui)
Vick-Nguyen
la source
2

Voici une méthode générale si votre site plante en utilisant .htaccess:

  • Vous devez commenter une ou les deux de ces lignes:

Options + FollowSymLinks

et / ou,

RewriteBase /

Cela devrait bien fonctionner! Remarque: vous commentez en donnant un hashtag pour une ligne "#"

tgyozo
la source
1

Si vous utilisez le serveur Web nginx , vous pouvez utiliser l'extrait de code suivant pour le nginx.conffichier de configuration où votre Joomla! le site est servi à partir de (en gros, ajoutez simplement la condition if après toutes les lignes existantes où la index index.phpdirective apparaît).

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

Plus de détails sur /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768 .

cnst
la source