2010-08-05 68 views

Respuesta

55

probar este mod_rewrite regla:

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

Esta norma concuerda con ninguna ruta de URL que no comienzan con cualquiera /uploads o /uploads/ (que conduce / no se encuentra en el patrón debido a la eliminación prefijo de ruta cuando se usa en archivos .htaccess) y redirige la solicitud a la ruta correspondiente al example.com.

+0

¡Funciona como un encanto, gracias! – PaulAdamDavis

+0

¿Existe una opción para hacer esto en segundo plano, por lo que el usuario no se redirige realmente, pero toda la solicitud se envía a otra dirección? – p1100i

+0

@burninggramma Pruebe 'P' en lugar de' R = 301'. – Gumbo

19

Creo que quieres esto:

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

Si obtiene 500 Internal Error continuación, compruebe que dispone de un espacio entre } y ! en la segunda línea.

49

Respuesta simple Acabo de tropezar conmigo mismo.

En la parte superior antes de ninguna otra llamada añaden los siguientes

RewriteRule ^(uploads) - [L] 
+1

Dios bendiga esta fila de código: D Gracias –

+0

No hay problema @ M.Svrcek. – PseudoNinja

+1

Si alguien tiene curiosidad por lo que hace [L]: http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l –

6

Una solución mod-alias basado

redirigir todas excepto una carpeta específica

Añada la siguiente línea a su raíz /.htaccess:

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

Esto redireccionará todas las páginas (excluyendo/uploads/*) de su antiguo dominio al nuevo dominio.

+1

¡Esto funciona perfectamente!Muy útil, ya que no pude usar mod_rewrite porque no estaba habilitado en el servidor de un cliente – lucaferrario

Cuestiones relacionadas