J'ai cherché Stackoverflow pour une solution spécifique et n'a pas pu trouver celui qui a fixé ma situation. Merci d'avance pour toute aide que vous pouvez offrir. Vos connaissances sont appréciées. P>
J'ai décidé d'accepter un contrat de «convertir» (dans les mots du client) un site Joomla dans un site WordPress. Tout s'allonge bien, sauf que le site Joomla se lie vers des fichiers .html, à la fois dans sa navigation et dans le contenu de 100+ messages. P>
au lieu de passer à travers chaque post-one-one et de mise à jour les liens ou exécuter une commande SQL pour supprimer ".html" des URL, j'ai décidé de mettre la pression sur .htaccess, avec lequel je suis un peu confortable. P>
dans WordPress, j'ai activé les permaliens personnalisés et il est comme suit: /% Catégorie% /% postName% P>
Voici un exemple de ce que l'une des URL forte> anciennes fores> dans les postes ressemble à: p> J'ai besoin du fichier htaccess pour dire au serveur Web de supprimer le fichier .html de sorte que l'utilisateur, après avoir visité " http://the-site.com/the-webpage.html " est envoyé à la place à: p> Je configure les talons de page Pour suivre le nom de fichier des pages Joomla, donc http://the-site.com/category / the-webfage fonctionnera. p> pouvez-vous m'aider à découvrir la solution pour supprimer .html de l'URL quand quelqu'un visite le site , Même si le fichier HTML n'existe pas sur le serveur? p> Voici comment le fichier .htaccess a regardé avant que j'ai apporté des modifications: EM> P>
ma question: h2>
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
3 Réponses :
Vous voulez utiliser une uRL réécrire
J'ai donné à cela un coup de feu en l'ajoutant au-dessous du code que j'ai inclus ci-dessus, mais je crains d'avoir un problème avec les variables, car le fichier htack original comprend: Rewriterle ^ index \ .php $ - [l]
Que voulez-vous dire par "problème avec les variables" exactement? Si vous mettez le code de Zurahn au-dessus de vos définitions de règle WordPress, il devrait faire ce dont vous avez besoin sans problème (en supposant que vous ne servez pas de fichiers .HTML réels).
Tim, j'ai ajouté à l'origine le code de Zurahn sous le code WordPress. Je l'ai ajouté au sommet et ça ne marche toujours pas. C'est ennuyeux, oui, et je le ferais normalement, c'est avec une recherche / remplacement en phpmyadmin, mais il existe quelques postes qui se trouvent sur des sites Web externes dont les URL incluent des fichiers HTML. J'ai ajouté ce que le code ressemble maintenant au poste d'origine.
Ah, non, tu as raison. C'est parce que WordPress doit utiliser demande_uri code> pour déterminer le chemin de demande, qui n'est pas affecté par une redirection interne. Vous pouvez évidemment rediriger de manière externe, mais laissez-moi penser s'il y a un moyen de le faire en interne.
Très apprécié jusqu'à présent, tim. Si vous pensez à quoi que ce soit pour moi d'essayer, postez-le dans un nouveau commentaire afin que je puisse vous donner des accessoires.
Cela devrait le faire. Il réécrire une demande à site.com/category/whatever.html sur site.com/category/whatever. Il ne devrait pas dépendre du fichier demandé existant.
<Directory /var/www/category> RewriteEngine on RewriteRule (.*)\.html$ /category/$1 </Directory>
Le site est hébergé sur Dreamhost, donc je n'ai pas accès aux fichiers de configuration. Je crains d'avoir un problème avec les variables, car le fichier htaccess original comprend: Rewriterle ^ Index \ .php $ - [l]
Variables? Il n'y a pas de variables impliquées dans un fichier hACCESS. Ils sont $ signifie fin de ligne et 1 $ est un capture d'une expression régulière. Ils ont seulement un sens au sein de cette ligne.
D'accord, je comprends que finalement. J'ai mis à jour ce que mon .htaccess ressemble maintenant à ce moment-là, et il entraîne toujours un 404 quand je visiterai the-site.com/category/the-webpage.html
Qu'est-ce qu'il est en cours de réécrit de - le fait-il 404 dire que la page WebPage.html n'est introuvable, ni un autre nom de fichier?
L'URL reste la même (the-site.com/category/the-webpage.html) et WordPress m'envoie à la page 404, j'ai conçu.
Cela fonctionnera pour forcer une redirection externe à vos nouvelles URL, mais cela peut ne pas être idéal pour votre situation. J'essaie toujours de penser s'il y a un moyen de garder la redirection interne et de mettre à jour la variable que WordPress utilise pour déterminer quelle page à servir, mais jusqu'à présent, je n'ai jamais pensé à rien qui fonctionnerait.
entier < Code> .htaccess code>: p>
Ça l'a fait, tim! Je mettrai à jour le poste original pour les futurs visiteurs avec le même problème. Merci beaucoup.
Une redirection de 301 est correcte, car les nouvelles URL sont permanentes. Merci encore.
Absolument, et merci encore. C'était l'une de ces choses, tout en concevant / développant un site, qui tient à l'arrière de votre esprit vous disant "Je n'ai aucune idée de la façon dont je vais faire ce travail." Vous, mon ami, êtes un sauveur. Merci cent fois.
Vous voudrez avoir les réécrites ajoutées dans la section section aussi. Un drapeau [L] pourrait être bon d'ajouter ici, car vous avez d'autres réécrites après le HTML, et ils ne s'appliquent pas.
J'ai déplacé les réécrites dans la section, et cela me donne toujours un 404. Cela pourrait-il avoir quelque chose à voir avec des sous-catégories et ma structure de permalien?