¿Qué regla de redireccionamiento usaría para redirigir todas las páginas olddomain.example
a las que se redirigirá newdomain.example
?
El sitio tiene una estructura totalmente diferente, por lo que quiero que cada página del dominio anterior se redirija a la nueva página de índice de dominio .
Pensé que esto haría (en el directorio base olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Pero si navego hacia, olddomain.example/somepage
me redirigen a newdomain.example/somepage
. Espero una redirección solo newdomain.example
sin el sufijo de la página.
¿Cómo mantengo la última parte?
.htaccess
mod-rewrite
Yuval Adam
fuente
fuente
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Respuestas:
Puede ser así:
fuente
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?La respuesta a continuación podría causar un bucle de redireccionamiento infinito ...
Aquí, este redirige todo después del nombre de dominio en la URL a la misma copia exacta en la nueva URL de dominio:
www.example.net/somepage.html?var=foo
redirige awww.newdomain.com/somepage.html?var=foo
fuente
Solo para aclarar, después de eliminar la redirección de alojamiento que estaba en el camino, mi solución original también funciona:
fuente
Lo he usado para mi blog de Wordpress como .htaccess. Convierte http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad , etc., a http: //blah.example/asad Gracias a todos otras respuestas me di cuenta de esto.
fuente
Esto funciono para mi
fuente
Hay varias formas de hacer esto y varias redirecciones, las he enumerado a continuación:
Redirección 301 (permanente): apunte un sitio completo a una URL diferente de forma permanente. Este es el tipo más común de redireccionamiento y es útil en la mayoría de las situaciones. En este ejemplo, estamos redirigiendo al dominio "ejemplo.com":
Redirección 302 (temporal): apunte un sitio completo a una URL temporal diferente. Esto es útil para fines de SEO cuando tiene una página de destino temporal y planea volver a su página de destino principal más adelante:
Redireccionar index.html a una subcarpeta específica:
Redireccionar un archivo antiguo a una nueva ruta de archivo:
Redireccionar a una página de índice específica:
fuente
Redirect 301 / http://example.com/$1
, todas las páginas del sitio original serán redirigidas a la nueva raíz del sitio$1
se requiere aquí, está pensando en laRedirectMatch
directiva (pero aún así necesitaría definir un grupo de captura para la$1
referencia).Redirect
directivas redirigirán de igual a igual, mientras que el OP desea redirigir solo a la página de inicio del nuevo sitio (aunque eso en sí mismo no es recomendable). Es posible que deba usar laRedirectMatch
directiva si solo desea redirigir a una URL específica.Si desea redirigir desde alguna ubicación al subdominio, puede usar:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
fuente
RewriteEngine On
throws 500 Internal Error. Es un espacio web muy restringido. UsarRedirect 301 / http://foo
es la única forma posible de tratar.Si el nuevo dominio al que está redirigiendo su sitio anterior está en un host diferente, simplemente puede usar un
Redirect
Esto redirigirá todas las solicitudes de
olddomain
anewdomain
.Redirect
la directiva no funcionará o puede causar un problemaRedirect loop
si su nuevo dominio y su antiguo dominio están en el mismo host, en ese caso deberá usarmod-rewrite
para redirigir según el encabezado del host solicitado.fuente
Mi reputación no me permite comentar una respuesta, pero solo quería señalar que la respuesta mejor calificada aquí tiene un error:
debería tener una barra inclinada antes de $ 1, así que
fuente
Mi solución como SymLinks no funcionaba en mi servidor, así que usé un If en mi PHP.
fuente
Este es un error en versiones anteriores de apache (y, por lo tanto, mod_rewrite) donde el prefijo de ruta se agregó a la ruta reescrita si se cambió. Mira aquí
Creo que se solucionó en apache2 V2.2.12, hay una bandera especial que debe usar que agregaré aquí cuando la encuentre (creo que fue NP para Sin ruta)
fuente
Desde el punto de vista de la usabilidad, sería mejor si también envía la ruta con la solicitud (es decir, lo que tiene en este momento) y deja que su nuevo sitio se ocupe de ella:
(y mejor aún, haciendo esto automáticamente).
Obviamente, esto es una gran cantidad de codificación y heurística para un sitio web más grande, pero en mi opinión sería rentable en términos de satisfacción del usuario (cuando su marcador guardado cuidadosamente del producto de sus sueños solo lo lleva a la página principal de newdomain.com, esto es frustrante)
fuente
Si desea redirigir para completar un nuevo sitio (dominio) diferente sin parámetros o páginas, use esto:
fuente
.htaccess
ya que simplemente no coincidirá con ninguna URL en la raíz del documento. Funcionaría en una configuración de servidor o contexto VirtualHost.Intenté la respuesta del usuario 968421 y la solución del OP, pero el navegador apareció un error de seguridad para una página de pago. No puedo decirte por qué exactamente.
Nuestro anfitrión (Site Ground) tampoco pudo resolverlo.
La solución final fue cercana, pero un ligero ajuste a la respuesta del usuario 968421 (nota al margen: a diferencia del OP, estaba tratando de redirigir a la página correspondiente, no solo a la página de inicio, así que
$1
mantuve la referencia posterior [ después del dominio] del usuario968421 responder):Obtuve el ajuste de este generador de redireccionamiento htaccess recomendado por un artículo de Host Gator (tiempos desesperados, medidas desesperadas, ¿verdad?).
fuente
Simple como este y esto no llevará la consulta final de la URL al nuevo dominio.
fuente
Utilice redireccionamientos condicionales con
Options -FollowSymLinks
yAllowOverride -Options
deshabilitados por el Hoster si también se deben servir algunos archivos locales:Muestra .htaccess
Este ejemplo servirá local index.html y redirigirá a todo el resto del personal al nuevo dominio.
fuente
Prueba este método para redirigir todo al nuevo dominio de la página de inicio, funciona para mí:
fuente
Las respuestas anteriores no me funcionaron.
Usé este código. Si está utilizando OSX, asegúrese de usar el formato correcto.
fuente