Comment supprimer index.php from URLs?

toutes mes URLs sur mon installation Magento doivent être indexées.php en eux, comme:

http://example.com/index.php/admin/
http://example.com/index.php/customer/account/login/

le problème est que le système par défaut des liens vers des URLs comme

http://example.com/admin/
http://example.com/customer/account/login/

qui sont plus jolies de toute façon. Je suppose que c'est une réécriture question .htaccess, mais comme bricoler avec ça dans le passé m'a donné 500 Shillings, j'aimerais vous demander d'abord.

changer les paramètres de référencement, vider le cache de configuration, et reindexing URLs n'a pas fonctionné comme suggéré ici .

30
demandé sur Community 2012-05-07 02:14:42

8 réponses

c'est peut-être vieux, mais autant écrire ce que j'ai appris. De toute façon, je l'ai fait comme ça.

---------->

avant de commencer, assurez-vous que le module de réécriture Apache est activé et suivez les étapes ci-dessous.

1) Ouvrez une session dans votre zone D'administration Magento puis allez à Système > Configuration > Web .

2) naviguer jusqu'au Unsecure et Sécurisé onglets. Assurez - vous que les options non sécurisé et Sécurisé - URL de Base ont votre nom de domaine à l'intérieur, et ne laissez pas la barre oblique vers l'avant à la fin de l'URL. Exemple: http://www.yourdomain.co.uk /

3) tout en restant sur la page Web , naviguez vers Optimisation du moteur de recherche et sélectionnez Oui sous l'option utiliser le serveur Web réécrit .

4) Naviguez à nouveau vers l'onglet Secure (si ce n'est pas déjà sur l'onglet) et sélectionnez Yes dans l'option utilisez des URLs sécurisées dans L'option Front-End .

5) Maintenant allez à la racine de votre dossier Magento site web et utilisez ce code pour votre .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Enregistrer l' .htaccess et remplacer le fichier d'origine. (PLEASE MAKE SURE TO BACKUP YOUR ORIGINAL .FICHIER htaccess AVANT de jouer AVEC ELLE!!!)

6) Maintenant , allez à Système > Gestion de Cache et sélectionnez tous les champs et assurez-vous que le Actions dropdown est défini sur rafraîchir , puis soumettre. (Cela rafraîchira bien sûr le Cache.)

---------->

si ce ne fonctionne pas, veuillez suivre ces étapes supplémentaires.

7) passez à Système > Configuration > web de nouveau. Cette fois, recherchez le étendue de la Configuration actuelle et sélectionnez votre site Web dans le menu déroulant. (C'est bien sûr, il est réglé par Défaut Config)

8) assurez-vous que les champs Unsecure et Secure contiennent le même domaine que la précédente configuration par défaut fichier.

9) naviguez jusqu'à L'onglet Optimisation des moteurs de recherche et sélectionnez Oui sous la section utilisez le serveur Web réécrit .

10) Une fois que les URLs sont les mêmes, et que la réécriture est activée, sauvegardez cette page, puis revenez en arrière et assurez-vous qu'elles sont toutes vérifiées par défaut, puis sauvegardez à nouveau si nécessaire.

11) répéter l'étape 6.

maintenant votre index.php problème devrait être corrigé et tout devrait être bien!!!

j'espère que cela aidera, et bonne chance.

85
répondu Blowtar 2016-04-20 13:04:45

suivez les étapes ci-dessous, il vous aidera.

étape 1: Allez dans le dossier racine de votre site et vous pouvez y trouver le fichier .htaccess . Ouvrez - le avec un éditeur de texte et trouvez la ligne #RewriteBase /magento/ . Il suffit de le remplacer par #RewriteBase / sortir juste le "magento /

étape 2: Ensuite allez dans votre panneau d'administration et activez les réécritures(mettez yes pour utiliser les réécritures du serveur Web). Vous pouvez le trouver à Système->Configuration->Web->Recherche Optimisation Du Moteur.

étape 3: Ensuite allez à la page de gestion de Cache (gestion de cache système) et rafraîchissez votre cache et rafraîchissez-vous pour vérifier le site.

25
répondu Sankar Subburaj 2015-01-22 08:14:59

vous devez activer mod_rewrite dans apache pour rendre les urls propres pour fonctionner

si mod_rewrite n'est pas dans phpinfo vous devez l'installer par

sudo a2enmod rewrite
sudo apache2ctl -l

vous devez remplacer l'occurrence de AllowOverride none par AllowOverride all (in /etc/apache2/sites-enabled/000-default)

Redémarrer Apache

sudo service apache2 restart

dans L'administration de Magento aller à System > Configuration > Web > search engine Optimization et changer " Use Web Server Rewrites "à Oui

9
répondu Akhilraj N S 2012-11-12 07:21:22

Que diriez-vous de ceci dans votre .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L]
7
répondu ErJab 2012-05-06 22:26:12

Salut je suis en retard à la fête.. je voulais juste souligner que les instructions de http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu / étaient vraiment utiles.

J'ai fait installer le serveur Ubuntu avec Apache, MySql et Php donc j'ai pensé que je pouvais sauter au titre créer le répertoire à partir duquel Magento sera servi à partir de et j'ai atteint le même problème que L'OP, i.e. I had 'index.php' nécessaire dans toutes les Url (ou j'aurais 404 not found). Je suis ensuite retourné à installer et configurer le serveur HTTP Apache et après avoir redémarré apache il fonctionne parfaitement.

pour référence, je manquais:

sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF
ServerName localhost
EOF"

... et

sudo a2enmod rewrite
sudo service apache2 restart

Espérons que cette aide

2
répondu Jonno 2013-02-28 12:34:58

si les autres solutions ne fonctionnent pas pour vous, essayez ceci:

Étape 1: (si votre installation est dans webroot)

remplacer

    #RewriteBase /magento/

avec

    RewriteBase /

Étape 2:

Ajouter les lignes suivantes (inclus exclure admin car backend besoins de l'index.php en interne)

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/ [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*)  [R=301,QSA,L]

juste après

RewriteRule .* index.php [L] 

Cela fonctionne pour moi

dans le cas où il ne fonctionne toujours pas, double vérifier la configuration Magento: Système - > Configuration->Web - > Optimisation Du Moteur De Recherche. Les réécritures doivent être activées.

2
répondu Stefan 2015-12-02 19:17:38

j'ai tout essayé sur le poteau mais rien n'avait fonctionné. J'ai ensuite changé la .htaccess snippet que ErJab a mis pour lire:

RewriteRule ^(.*)$ 'folder_name'/index.php/ [L]

la ligne ci-dessus l'a fixée pour moi. où * folder_name* est le dossier racine de magento.

Espérons que cette aide!

1
répondu nanyaks 2012-11-14 14:02:01

principalement Si vous utilisez un système basé sur Linux comme 'Ubuntu' et ceci est seulement suggéré pour l'utilisateur localhost pas pour le serveur.

Suivez toutes les étapes mentionnées dans les réponses précédentes. +

Vérifiez la configuration D'Apache. (AllowOverride All) Si la valeur AllowOverride est none, changez-la EN All et redémarrez apache.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

faites-moi savoir si cette étape aider quelqu'un. Comme il peut vous faire économiser temps si vous trouver plus tôt.

enter image description here

j'Ajoute les lignes exactes de mon fichier htaccess dans localhost. pour votre référence

autour de la ligne numéro 110

<IfModule mod_rewrite.c>

############################################
## enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

#RewriteBase /

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

les Images sont pour un utilisateur qui comprend facilement de l'image le du texte:

enter image description here

1
répondu Suyash Kumar Bharti 2016-05-11 07:51:34