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 .
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.
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.
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
Que diriez-vous de ceci dans votre .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L]
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
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.
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!
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.
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: