Retirez .html à partir d'Url avec une redirection
Nous avons un site web, malheureusement, toutes les Url ont la .html
suffixe, c'est une installation de Magento, Magento vous permet de changer ce sur le CMS, mais encore une fois, malheureusement, toute cette Url avec .html
suffixe avoir un bon classement dans Google. Nous avons besoin de redirection non .html
.
Donc, considérez le scénario suivant, nous sommes à la reconstruction de ce site à partir de zéro, de sorte que nous avons la même url sur le nouveau site, mais sans la .html suffixe.
- Est maintenant:
www.example.de/cool-shoes.html
- Sera:
www.example.de/cool-shoes
Donc www.example.de/cool-shoes.html
n'existent plus, et j'ai essayé une redirection avec le .htaccess avec pas de chance.
J'ai essayé jusqu'à présent:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule (.*)index\.html$ /$1 [R=301,L]
et:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
mais il ne semble pas fonctionner...des idées?
OriginalL'auteur Kaßta | 2012-04-20
Vous devez vous connecter pour publier un commentaire.
Ok, donc, après quelques recherches, et à défaut de parvenir à une règle de réécriture, la ligne de code suivante travaillé:
C'est très utile pour supprimer une url d'extension et d'éviter les liens brisés, espérons-le, aide à quelqu'un dans le futur...
cheers!
Cette règle est en retrait de la
.html
. La première partie est ce que c'est la mise en correspondance: Toutes les url qui a un.html
. Le$1
est ce qui est dans la parenthèse du match: tout sauf les.html
.Je voudrais ajouter un
$
pour assurer la.html
vient à la fin de l'URL:redirectMatch 301 ^(.*)\.html$ $1
OriginalL'auteur Kaßta
Cela va réécrire l'url comme http://example.com/page.html -> http://example.com/page
.html
pas le supprimer. Il semble également être une règle de réécriture, pas une règle de redirection. Il aurait besoin de[R=301,L]
à la fin pour faire toute la redirection.OriginalL'auteur Joshua Pekera
Essayez d'ajouter le texte suivant à la .htaccess dans le répertoire racine de votre site, les Url de redirection .l'extension html et de le supprimer.
OriginalL'auteur Suhas
Voici la solution qui a fonctionné pour moi.
.html
mais vous ne voulez pas.html
à apparaître dans l'Url.Cela a fonctionné pour moi. Retiré
.html
à partir de l'URL mais encore charger le fichier requis. Merci Patrick!OriginalL'auteur Patrick James McDougle
Suivez les étapes, et vous serez en mesure de supprimer .html à partir de l'url sans le modifier .fichier htaccess.
Un lien unique réponse n'est pas de haute qualité. Le contenu lié pourraient changer et est devenu indisponible. Il n'est pas aussi convivial pour rendre les gens sur de la réponse. Il serait préférable d'au moins résumer les étapes ici.
OriginalL'auteur Vikas
Cela devrait faire l'affaire:
Bien que ce n'est que cela prend toute demande se terminant avec .html (\w+ correspond à une valeur non nulle de chaînes de caractères alphanumériques) et il redirige vers la même adresse mais sans la .html. Je suis en supposant que vous voulez quelque chose d'autre, et Vikas solution semble intéressant
Merci s'accoupler,je pense que vous êtes dans la bonne voie,Vikas solution est bonne, mais comme je l'ai expliqué ci-dessus, uniquement pour les cas où l'URL existe, dans ce cas cette URL (.html) sera supprimé, et je veux que tout le monde pour être redirigé vers la nouvelle url sans le .html. Im édition de la principale .htaccess et ajouté la ligne que vous avez proposé sur le bon endroit, mais pas de redirection est en train d'être fait,peut-être Im de faire le mal par l'ajout de cette ligne sur la main .fichier htacess de l'ensemble de l'installation de magento, Ill essayer de faire un distinct .htacess pour cette boutique (j'ai un multishop installation )Merci!
Cette règle est absent de la
[R=301,L]
qui raconte mod de réécriture pour rediriger plutôt que de réécrire.RewriteRule ^(\w+)\.html$ /$1 [R=301,L]
devrait fonctionner.OriginalL'auteur ᴘᴀɴᴀʏɪᴏᴛɪs
Essayez ceci pour mettre à votre .fichier htaccess
Redirect permanent http://www.mysite.de/cool-shoes.html
http://www.mysite.de/cool-shoes
cela peut être utile pour vous
OriginalL'auteur Mufaddal
C'est pour les Url se terminant par .html /product/raspberrypi.html ---> /produit/raspberrypi/(/product/raspberrypi/index.php) le index.php est caché. M'a fallu un certain temps pour comprendre cela. LOL...
Vous devez utiliser 'REQUEST_URI" et d'ajouter " elle avant de l'indice de rediriger les règles, car il pourrait être remplacée par l'application. Il est important de savoir que son URI pas un nom de fichier ou le répertoire que nous essayons de redirection, depuis les noms de fichier ont tous index.php dans les dossiers racine(WordPress).
OriginalL'auteur Rick Beacham