Hacer que apache automáticamente la franja de la www.?
Pregunta
Por diversas razones, tales como cookies, SEO, y para mantener las cosas simples, me gustaría hacer apache redirigir automáticamente las solicitudes para http://www.foobar.com/anything a http://foobar.com/anything.La mejor que se me ocurrió es un mod_rewrite basado en la monstruosidad, ¿hay alguna forma simple y fácil para decirle que "Redirigir todas las peticiones de dominio ABC XYZ"?
PS:He encontrado esto de alguna manera relacionados con la pregunta, pero es para IIS y hace lo contrario de lo que yo quiero.También es todavía complejo.
Solución
Es tan fácil como:
<VirtualHost 10.0.0.1:80>
ServerName www.example.com
Redirect permanent / http://example.com/
</VirtualHost>
Adaptar los nombres de host y direcciones ip según sea necesario :)
Otros consejos
más simple y más fácil para copiar de un sitio a otro:
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Bastante simple, si el uso de mod_rewrite, como hacemos todos ;)
Esto es parte de el .htaccess de mi sitio web en vivo:
RewriteEngine on
# Catches www.infinite-labs.net and redirects to the
# same page on infinite-labs.net to normalize things.
RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]
El uso de un .htaccess con algunas reglas de mod_rewrite:
RewriteEngine On
RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]
No estoy seguro de que tiene la sintaxis de la derecha con la $1
no, pero está bien documentado.L envía una ubicación:cabecera para el navegador, y QSA medios de Cadena de Consulta de datos Anexados.
Ya que usted menciona el uso de mod_rewrite, me gustaría sugerir una regla simple en su .htaccess - no parece monstruoso para mí :)
RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteRule ^(.*)$ http://foobar.com/$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Que debe hacer el truco.