71 votes

Rediriger le site avec .htaccess mais exclure un dossier

Je souhaite 301 rediriger un site Web entier, mais exclure tout ce qui se trouve dans un dossier appelé /uploads qui existe dans le répertoire /root

J'ai cherché sur Google, mais je n'ai rien trouvé, ou je ne pensais pas que ce que j'avais vu était juste.

Pouvons-nous casser ça?

88voto

Gumbo Points 279147

Essayez cette règle mod_rewrite:

 RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]

Cette règle ne correspond à aucun chemin d'URL qui ne commence pas /uploads ou /uploads/ (en tête / est manquant dans le modèle en raison de la suppression du préfixe de chemin lorsqu'il est utilisé dans les fichiers .htaccess) et redirige la requête vers le chemin correspondant sur example.com .

64voto

PseudoNinja Points 1237

Réponse simple Je viens de tomber sur moi-même.

En haut avant tout autre appel, ajoutez ce qui suit

 RewriteRule ^(uploads) - [L]

35voto

Dominic Rodger Points 44489

Je pense que tu veux ceci:

 RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Si vous obtenez 500 Internal Error vérifiez que vous avez un espace entre } et ! sur la deuxième ligne.

13voto

starkeen Points 29161

Une solution basée sur un mod-alias

Rediriger tout sauf un dossier spécifique

Ajoutez la ligne suivante à votre racine / .htaccess:

 RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1

Cela redirigera toutes les pages (à l'exception de / uploads / *) de votre ancien domaine vers le nouveau domaine.

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