2009-11-21 2 views
2

J'ai recherché, essayé divers exemples et aucun, autre que la création d'une liste explicite d'instructions de redirection semble fonctionner. Le plus gros problème que j'ai, c'est que, même si j'ai accès au site, je n'ai pas accès à un panneau de contrôle de l'hébergement web - l'accès au site a été hérité, et jusqu'à maintenant ça va, mais je pense que Il fonctionne soit avec une ancienne version d'Apache, soit les règles de réécriture ne sont pas autorisées. Anywa, au fil des ans, le site a changé plusieurs fois, et après avoir enregistré le site avec Google Webtools, j'ai trouvé la liste des pages qui ont causé des erreurs d'exploration, donc créé un fichier HTACCESS pour faire face à ces. Au fil des années, il y a eu des dossiers déployés et nommés dans le cas de chameau et tous les minuscules, et donc tout ce que je voulais faire était de rediriger tous les fichiers dans un dossier dans le nouveau dossier au niveau du fichier .htaccess,
mon .HTACCESS compte actuellement 120 lignes, et un lot d'exemple sont les suivantes:
redirect 301 /challenge/stanley_steamer.htm /lsr_history.html
redirigent 301 /challenge/stanley_steamer.html /lsr_history.html
redirigent 301/Défi /index.htm /lsr_history.html
redirect 301/Challenge/Record.htm /lsr_history.html
redirect 301/Défi/Steamley_Steamer.htm/lsr_history.html
301 redirect /Challenge/Sponsors/Avery_Weigh-Tronix.htm /sponsors.html
redirigent 301 /contact/index.html /contact.html
rediriger 301 /design/details.html /design.html
rediriger 301 /design/index.html /design.html
redirigent 301 /Design/Engine-drive_train.htm /design.html
redirigent 301 /Design/Rear.htm /design.html
rediriger 301/design/Home_Page.htm /design.html
rediriger 301 /Design/index.htm /design.html
Comme vous pouvez le voir , J'ai quelques cas où le nom de dossier est camel, d'autres plus bas, et d'autres cas où il y a un htm et un dossier html du même nom qui est énuméré dans le journal d'erreur d'analyse. Tout ce que je veux faire est, dans l'exemple ci-dessus, rediriger toutes les pages de/Challenge/et/challenge/à lsr_history.html, mais tous les fichiers dans/Challenge/Sponsors/à sponsors.html.
J'ai aussi une énorme liste de pages d'équipe individuelles que je liste une par une et chacune redirige vers la nouvelle page de l'équipe.
J'ai essayé des exemples comme:
RedirectMatch 301 ^/[Cc] hallenge//challenge.html, mais cela renvoie une 'erreur 404 introuvable'.
Toutes les idées ou les exemples de la façon dont je peux réduire mon fichier htaccess pour simplifier cela seront reçus avec reconnaissance.
Cordialement
MartinProblème de redirection de toutes les pages d'un dossier vers une page au niveau racine

+0

désolé mais tl; dr –

Répondre

1

Je ne voudrais pas déranger la recherche de cas à l'intérieur de la chaîne de correspondance pour ce genre de chose si je pouvais l'éviter - avez-vous essayé simplement spécifier le RedirectMatch en minuscules, et annexant [NC] à la fin de chaque ligne? (cela dira à mod_rewrite d'ignorer la casse et la correspondance, ce qui peut vous faire gagner du temps)

Si vous avez des collections de réécritures au format similaire, pourquoi ne pas les regrouper avec un ensemble de règles particulier pour chacun? De cette façon, vous pouvez couvrir, par exemple, toutes les URL entrantes avec un sous-répertoire avec une règle, et toutes les URL entrantes avec un seul sous-répertoire avec une autre règle. Si rien d'autre, il pourrait aider à simplifier la visualisation du.htaccess :)

(Prenez tout ce que je suggère avec une dose massive de sel, je suis toujours prise en main avec la magie noire de moi-même mod_rewrite)

Questions connexes