¿Cómo redirigir root y solo root a través de htaccess?


53

Quiero redirigir solo mi raíz a otra url, pero mantener todos los directorios / sub / donde pertenecen (y redirigir)

ejemplo:

mysite.com/1 redirige a algún lugar mysite.com/admin abre una página

quiero mysite.com/ para redirigir a mysecondsite.com y solo esto con una redirección 301 usando htaccess

Respuestas:


75

Prueba esto:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

Si no necesita verificar el dominio anterior (por ejemplo, si el directorio donde se ubica su .htaccess solo lo usa el dominio anterior), puede eliminar la segunda línea.


1
En mi caso, necesitaba redirigir el tráfico a mysite.com/ pero no a foo.mysite.com, así que tuve que agregar una expresión regular a la línea 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]para asegurarme de que la coincidencia era para el host exacto
jaygooby

Es más eficiente verificar la ruta URL en el RewriteRule patrón (como en la respuesta de @ DaveForgac), en lugar de usar una condición adicional para verificar la REQUEST_URIvariable del servidor.
MrWhite

38

Si quiere decir que solo desea redirigir "/" a otro dominio, esto funcionará:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

Esto solo coincide con la raíz del dominio con nada después, por lo que solo redirigirá el nombre de dominio sin un nombre de archivo especificado.


Una ligera variación funcionó para mí. Agregado al final de mi htaccess, después de invocar todas las demás reglas, solo quería presentar una página de bienvenida a cualquiera que visite mi dominio raíz (sin ningún subdominio): RewriteCond% {HTTP_HOST}! ^ (Subdominio1 | subdominio2) \. Mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
MarsAndBack

15

Esto debería funcionar bien:

RedirectMatch 301 ^/$ https://example.com/

2
Esto sería preferible (a las respuestas existentes) si aún no está utilizando mod_rewrite para otros redireccionamientos.
MrWhite

-3

Una solución más corta:

Redirect 301 / http://mysecondsite.com/

12
Esto NO hará lo que quiere Jardel. Redirigirá TODAS las páginas en lugar de solo la raíz.
sharoz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.