2011-10-19 28 views
7

Revisé todos los hilos respondidos en el problema de la regla de reescritura. Intenté las sugerencias, pero todavía no sé lo que estoy haciendo mal.RewriteRule para 301 redirigir

Quiero hacer una redirección 301 de nuestras antiguas URL a las nuevas. Ejemplo:

old url : http://www.xyz.com/abc/topics.html 
new url : http://www.xyz.com/index.php#first 

Estoy tratando regla siguiente en .htaccess:

RewriteEngine on 
RewriteRule ^\/abc\/(.+)$ http://www.xyz.com/index.php#first [L,R=301] 

Cualquier consejo es muy apreciada

Respuesta

18

Probar:

RewriteRule ^abc\/(.+)$ http://www.example.com/index.php#first [L,R=301, NE] 
+0

Gracias, esta solución redirige a la página de destino pero en la url en lugar de '#' muestra '% 23', por lo que no se desplaza al anclaje. – mooglife

+3

encontró la solución, Tuve que usar la bandera [NE] también. así que ahora es:^abc \/(. +) $ http://www.xyz.com/index.php#first [L, R = 301, NE] – mooglife

4

Puede, por supuesto, hacerlo por "mod_rewrite", pero en este situación, le sugiero que use mod_alias, ya que es más rápido y más simple (vea esta respuesta SO: mod_rewrite or mod_alias?)

Te gusta esto:

Redirect permanent /abc http://www.xyz.com/index.php#first 
+0

Fui a través de mod_alias, parece que es más rápido. pero un inconveniente es: xyz.com/abc/test redirige a http://www.xyz.com/index.php#first/test – mooglife

Cuestiones relacionadas