htaccess RewriteRule, mod_rewrite, RewriteCond & Redirect 301

htaccess RewriteRule, mod_rewrite, RewriteCond & Redirect 301

Redireccionamiento de un dominio de la WWW a uno que no lo sea

# 301 redirect(redirección permanente) de http://www.sample.com a http://sample.comRewriteEngine onOpciones +FollowSymLinksRewriteCond %{HTTP_HOST} ^www.sample.tld$ [NC]RewriteRule ^(.*)$ http://sample.com/$1 [R=301,L]

Redireccionamiento de un dominio a otro dominio

Supongamos que queremos redirigir todas las páginas y publicaciones de http://www.sample1.com a http://www.sample2.com. Para ello, sólo tienes que colocar el siguiente código en el archivo .htaccess de http://www.sample1.com.

# Redireccionar desde http://www.sample1.com a http://www.sample2.comRewriteEngine OnRewriteRule ^(.*)$ http://www.sample2.com/$1 [R=301,L]

Redirigir 301

La redirección del 301 también se conoce como redirección permanente. Redirige a los visitantes a una nueva página y también indica a los robots de los motores de búsqueda que la página ha sido movida permanentemente a una nueva ubicación.

Redirigir una página a una ubicación diferente –

Aquí estoy redirigiendo el URL http://sample.com/category1/page1.html a http://sample.com/category2/page2.html

# 301 Ejemplo de redireccionamientoRedirección 301 /categoría1/página1.html http://sample.com/category2/page2.html

También puede ser escrito como…

Redireccionar permanente /categoría1/página1.html http://sample.com/category2/page2.html

En el ejemplo anterior estamos estableciendo una redirección dentro del mismo sitio. Si estás planeando establecer una redirección entre dos sitios web diferentes, entonces RewriteRule es una mejor opción.

Ejemplo
Estoy usando el mismo ejemplo de la muestra1 y la muestra2

# RewriteRuleRewriteRule http://www.sample1.com/firstpage.php http://www.sample2.com/secondpage.phpRewriteRule http://www.sample1.com/category/ http://www.sample2.com/mynewcat/RewriteRule http://www.sample1.com/ http://www.sample2.com/

Redirigir todo el sitio web a la página principal de un nuevo dominio

Digamos que el código que aparece a continuación se coloca en el archivo .htaccess de Sample1, entonces cualquier url solicitada para Sample1 sería redirigida a la página principal de Sample2 (es decir, http://www.sample2.com/)

# Redirección permanente para un sitio enteroRedirección 301 / http://www.sample2.com

El código anterior también puede ser escrito como…

Redireccionamiento permanente / http://www.sample2.com

Redirigir si el archivo no existe

Si mi archivo – http://sample.com/category/page.php no existe, entonces redirige a http://sample.com/category2/subcat/. Vamos a escribirlo en el archivo .htaccess –

# Reescribir sólo si el archivo no existeRewriteCond %{REQUEST_URI} ^/categoría/(.*)/página.php$RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^category/(.*)/page.php$ category2/subcat/$1

Redireccionar a un sub-dominio

Por ejemplo, quiero redirigir a mis visitantes a http://mysub.sample.com desde http://sample.com y luego puedes escribirlo como…

# Enviar visitantes a un subdominioRewriteCond %{HTTP_HOST} !^$RewriteCond %{HTTP_HOST} !^subdominio.dominio.com$ [NC]RewriteRule ^/(.*)$ http://mysub.sample.com/$1 [L,R=301]

Arreglar el problema del contenido duplicado usando la reescritura

Por ejemplo – mi sitio web www.sample.com tiene una página web que se mostraría cuando el usuario introduce cualquiera de las siguientes url en el navegador –
http://www.sample.com/mypage
http://www.sample.com/mypage?id=94

Si consideras el SEO entonces estas páginas pueden ser tratadas como páginas duplicadas por lo que para evitar tal situación puedes redirigir las páginas de segundo tipo a la primera.

RewriteCond %{THE_REQUEST} ^GET /.*;.* HTTP/RewriteCond %{QUERY_STRING} !^$RewriteRule .* http://www.sample.com%{REQUEST_URI}? [R=301,L]

Después de tener el código anterior en .htaccess, cuando el usuario entra en la url – http://www.sample.com/mypage?id=94, sería redirigido a la – http://www.sample.com/mypage

Deja una respuesta