Problème avec la redirection d'un dossier avec mod_alias
-
21-09-2019 - |
Question
Une autre question suivante sur ce fil . Le seul élément restant que je ne peux pas résoudre est qu'il ya une liste pour un dossier maintenant inexistant « / équipe / », mais si j'ajoute ceci dans mon fichier .htaccess, il se casse toutes les autres entrées .htaccess pour les fichiers ce dossier, à savoir
redirect 301 /team/ /team.html
redirect 301 /team/joe_bloggs.htm /team.html
redirect 301 /team/joe_bloggs.html /team.html
redirect 301 /team/bill_smith.htm /team.html
redirect 301 /team/bill_smith.html /team.html
Si je tente alors de visiter /team/joe_bloggs.htm, il me prend à
/team.html/joe_bloggs.htm
Si je peux résoudre ce problème, il peut me aider à comprendre comment résoudre ma question initiale et de réduire l'énorme liste des pages de redirection dans mon fichier .htaccess, de sorte que toute aide reçue avec reconnaissance.
La solution
Vous devez changer l'ordre, et de mettre « redirect 301 /team/ /team.html
» à la fin.
Il lit la ligne à la ligne et si elle trouve quelque chose convient, il le remplace.
De plus, je pense que vous devez apprendre à ajouter, ^ et caractères $. ^ Signifie, l'expression doit commencer, et signifie $ l'expression devrait prendre fin.
Ainsi, ^/team/$
signifie, il doit être exactement / équipe / et /team/joe_bloggs.htm
wont match
Autres conseils
Le Redirect
directive fonctionne sur préfixes de chemin. Et dans ce cas, le préfixe de chemin utilisé dans votre première directive (/team/
) matchs et le reste du chemin est ajouté au nouveau chemin d'URL.
[...] toute demande commençant par
URL-Path
retournera une demande de redirection au client à l'emplacement de la cibleURL
. informations de chemin supplémentaire au-delà de la correspondanceURL-Path
sera ajouté à la cibleURL
.
RedirectMatch
place:
RedirectMatch 301 ^/team/ /team.html