web-dev-qa-db-fra.com

Comment supprimer index.php de l'URL dans le site multilingue

J'ai la recherche pour supprimer index.php des URL. J'ai fait ce que beaucoup de sites Web disent. Mais je reçois toujours une erreur 404. Je pense que cette erreur ne serait pas montrée si je n'utilisais pas un site Web multilingue. J'utilise Joomla 3.3.3. Tous les exemples concernent un site en une seule langue. Mais mon site a au moins deux langues.

Mon adresse de la page d'accueil est comme

http://www.example.com/index.php/en/

Quand j'active "utiliser mod_rewrite" et que je change de htaccess.txt À .htaccess, Oui, index.php Disparaît.

http://www.example.com/en/

Mais je vois l'erreur 404 maintenant.

J'ai également activé l'option "Supprimer le code de langue" dans le plug-in de filtrage des langues.

Une partie de configuration.php

...
public $sef = '1';
public $sef_rewrite = '1';
public $sef_suffix = '0';
public $unicodeslugs = '0';
...

Si je tape http://www.example.com dans la barre d'adresse, la page d'accueil se charge. Mais si je clique sur un élément de menu afin de lire un article 404 page montre.

Quelles sont vos suggestions?

2
zkanoca

Tout d'abord, dans la configuration globale, définissez tiliser la réécriture d'URL sur Oui. C'est l'option pour supprimer le index.php depuis l'URL.

Une fois cela fait, renommez simplement votre fichier htaccess en .htaccess, que vous semblez avoir déjà fait. Cela permet d’effectuer le premier changement mentionné ci-dessus.

3
Lodder

D'après mon expérience, le .htaccess le fichier devrait fonctionner quels que soient les paramètres de site multilingues/uniques. La raison la plus courante d’erreurs 404 sur n’importe quelle page MAIS la page d’accueil est une erreur dans .htaccess. Il y a deux lignes à vérifier:

  1. Essayez de commenter Options +FollowSymLinks comme suggéré (en ajoutant un # au début de la ligne):

    # The line just below this section: 'Options +FollowSymLinks' may cause problems
    # with some server configurations.  It is required for use of mod_rewrite, but may already
    # be set by your server administrator in a way that dissallows changing it in
    # your .htaccess file.  If using it causes your server to error out, comment it out (add # to
    # beginning of line), reload your site in your browser and test your sef url's.  If they work,
    # it has been set by your server administrator and you do not need it set here.
    ##
    
    ## Can be commented out if causes errors, see notes above.
    Options +FollowSymLinks
    
  2. La deuxième ligne qui pourrait causer des problèmes est RewriteBase /

    # Uncomment following line if your webserver's URL
    # is not directly related to physical file paths.
    # Update Your Joomla! Directory (just / for root).
    ##
    
    # RewriteBase /
    

    Essayez de ne pas commenter cette ligne et si vous avez installé Joomla dans un sous-répertoire, ajoutez ce répertoire après le / (Exemple: RewriteBase /joomladir)

2
johanpw

Tout d’abord, vous avez suivi les étapes appropriées pour supprimer le fichier index.php. Il ya simplement un problème qui empêche le sef de fonctionner. C’est en fait tout à fait normal dès que vous avez changé de lien SEF. Il y a plusieurs raisons possibles ...

  1. Vous n'avez pas de serveur Apache ou mod_rewrite n'est pas activé et .htaccess ne fait rien. Vous auriez probablement remarqué, mais inclus pour être complet. Et de nombreux environnements de développement Web locaux (tels que WAMPserver) font que mod_rewrite est désactivé par défaut.

  2. Vous devez reconstruire vos données SEF dans le gestionnaire de menus. Il suffit de cliquer sur reconstruire. Aucune idée pourquoi il ne met pas à jour automatiquement.

  3. Votre module de menu ne s'est pas mis à jour correctement à cause du cache. Effacer toutes les caches. C'est ce que je rencontre habituellement lorsque le menu est intégré au modèle et que celui-ci est mis en cache de manière extensive. Vous devez également cliquer deux fois sur la touche F5 pour forcer le navigateur à tout recharger.

0
Ville Niemi