37 votes

.htaccess redirige le dossier vers une url

J'essaie de rediriger un dossier et tous ses sous-fichiers vers une URL avec un fichier .htaccess.

Mais

Redirect 301 /abc/cba/ http://www.aaa.com/

fera /abc/cba/ddd/index.html rediriger vers http://www.aaa.com/ddd/index.html

Ce que je veux, c'est rediriger /abc/cba/ /abc/cba/ddd/index.html a http://www.aaa.com/

Quelqu'un peut-il m'aider ? Merci. Si quelque chose n'est pas clair, faites-le moi savoir.

46voto

Jon Lin Points 88615

Par défaut, Redirect en quelque sorte cartes le nœud de chemin vers un nouveau nœud de chemin, de sorte que tout ce qui suit le premier chemin est ajouté à l'URL cible.

Essayez :

RedirectMatch 301 ^/abc/cba/ http://www.aaa.com/?

Ou si vous préférez utiliser mod_rewrite au lieu de mod_alias :

RewriteEngine On
RewriteRule ^/?abc/cba/ http://www.aaa.com/? [R=301,L]

11voto

Joseph Neathawk Points 456

Voici un autre exemple de règle mod_rewrite qui a fonctionné pour moi

Je voulais rediriger un sous-répertoire vers la racine du même domaine.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^sub_directory/(.*)$ /$1 [R=301,NC,L]
</IfModule>

Vous trouverez d'autres exemples ici : http://coolestguidesontheplanet.com/redirecting-a-web-folder-directory-to-another-in-htaccess/

2voto

user96534678 Points 446

Je préfère la méthode suivante :

 RewriteEngine on
 RewriteCond %{REQUEST_URI}  ^/somedir           [NC]
 RewriteRule /(.*) http://somesite.com/lost/$1 [R=301,L]

1voto

Kevin Danikowski Points 643

J'ai dû réacheminer les urls de l'ancienne version du site vers la nouvelle version, voici donc ce que j'ai fait pour réacheminer tous les liens de about-us/* vers about-us.html

RewriteEngine on
RewriteRule ^about-us/(.*)$ about-us.html [R=301,L]

Ce qu'il ne fait pas, c'est réécrire quelque chose comme domain.com/about-us/thing.html => domain.com/about-us.html .

Cela fonctionne pour les choses sans extension domain.com/about-us/something-in-url => domain.com/about-us.html

J'ai ajouté les lignes ci-dessous pour rediriger les .jpg et .png, mais cela n'a pas fonctionné pour les .html, je n'arrive pas à savoir pourquoi.

RewriteRule ^about-us/(.*).jpg about-us.html [R=301,L]
RewriteRule ^about-us/(.*).png about-us.html [R=301,L]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X