J'ai un peu de mal à trouver quelque chose qui devrait être simple. Je veux 301 rediriger tout dans un répertoire vers un seul fichier dans un nouvel emplacement.Rediriger 301 à partir d'un répertoire vers un fichier unique
Dans mon .htaccess
, je l'ai déjà essayé ce qui suit ...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/index.html
et ce ...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/
et ce ...
Redirect 301 /myDir http://www.mydomain.com/myNewDir
Le problème est que chacun d'entre eux sont simplement la cartographie de chaque fichier /myDir/
et en l'ajoutant à la fin de l'URL de destination.
Après googler, j'ai vu quelque chose qui a dit de le faire ...
Redirect 301 ^/myDir(.*) http://www.mydomain.com/myNewDir
Mais cela ne fonctionne tout simplement la même chose ... il est cartographie l'emplacement du fichier existant à la fin de l'URL. Il était facile de trouver beaucoup de ".htaccess rediriger" tutoriels en ligne, mais ils semblent ne montrer que les exemples évidents comme «mappage de fichier one-to-one» ou «mappage de répertoire one-to-one». Ces tutoriels semblent également négliger d'expliquer les différentes directives de fichiers pertinentes et comment les utiliser correctement.
Ce compte d'hébergement particulier est garbage et a également des extensions FrontPage installées. Mod-rewrite échoue (casse tout le site) mais les lignes Redirect 301
fonctionnent bien. Donc, jusqu'à ce que je puisse déplacer ce nouveau site (non-FrontPage) vers un compte d'hébergement plus robuste, je vais devoir m'en tenir au Redirect 301
one-liner.
Comment puis-je utiliser simplement un Redirect 301
pour rediriger tout dans les /myDir/
à la même seul fichier situé à /myNewDir/index.html
? (Je préférerais utiliser seulement /myNewDir/
si possible). Veuillez expliquer en détail les directives de fichier utilisées dans votre solution.
MISE À JOUR:
réponse précédemment acceptée ne fonctionne pas.
Exemple:
RedirectMatch 301 /myDir1/(.*) http://mydomain.org/newpath/myDir1/index.html
... donne un "Trop de redirections ont eu lieu en essayant d'ouvrir" erreur.
C'est parce que /myDir1/(.*)
des mises en correspondance tout lieu dans la chaîne si l'URL cible contient /myDir1/
nulle part, non seulement la racine, il va être redirigé dans une boucle méchant.
Voir ma propre réponse pour la bonne solution.
Merci beaucoup. Cela commençait à me rendre fou. Cela fonctionne pour diriger le contenu d'un répertoire entier (chaque page à l'intérieur) vers une page donnée. – Tom
Si vous avez déjà eu une redirection 301 au mauvais endroit (en ajoutant la page à l'URL de destination), vous devrez peut-être vider le cache de votre navigateur avant de récupérer la nouvelle règle depuis .htaccess. – Russ