2010-03-02 18 views

Respuesta

19

Probar:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

Y sin mod_rewrite:

<VirtualHost 10.0.0.1:80> 
     ServerName www.example.com 
     Redirect permanent/http://example.com/ 
</VirtualHost> 

Las máquinas virtuales se pueden utilizar, completando los pasos en el siguiente URL: Setting Up A Virtual Host in Apache.

+0

Esto es lo que sucedió: la página web en http://www.example.com/ ha generado demasiados redireccionamientos. Limpiar sus cookies para este sitio o permitir cookies de terceros puede solucionar el problema. De lo contrario, posiblemente sea un problema de configuración del servidor y no sea un problema con su computadora. * Los eliminé pero el sitio aún está inactivo. ¿Por qué tan? * – Yeti

+0

Pregunta 1. ¿Usó ambos al mismo tiempo? Pregunta 2. ¿Cambió la dirección IP al valor correcto? Pregunta 3. ¿Es dueño de example.com? –

+1

+1 para el enfoque de virtualhost. No recurras a mod_rewrite hasta que realmente lo necesites. – bobince

37

Aquí es una solución más generalizada:

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
RewriteRule^http://%1%{REQUEST_URI} [L,R=301] 
+3

¿Hay alguna forma de detectar y reescribir el mismo esquema de URL (http o https) del que proviene un usuario? 'http: // www.example.com /' a 'http: // ejemplo.com /' y 'https: // www.example.com /' a 'https: // ejemplo.com'. –

+0

¿REQUEST_URI contiene index.php? Por alguna razón, cuando voy a www.example.com, se redirecciona a www.example.com/index.php – CMCDragonkai

+0

@CMCDragonkai No olvide la bandera de QSA si desea agregar la cadena de consulta original. – jordanbtucker

8

Como pequeño ajuste de la respuesta de Kyle, que había puesto a/en la condición de coincidencia RewriteRule, como

RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
RewriteRule ^/(.*)$ http://example.com/$1 [R=301,L] 

De lo contrario, se obtiene una doble barra como resultado.

http://www.example.com/smth -> http://example.com//smth 
+0

exactamente lo que estaba buscando. – NilsB

4

siempre usaría 307 (redirección temporal) en primer lugar, porque si uno se equivoca algunos navegadores caché de forma permanente. Terminé instalando Google Chrome solo porque no pude hacer que mi Firefox olvidara una mala redirección incluso cuando borré todo el caché.

2

Aquí hay una solución si no desea un nombre de dominio codificado. ¡No olvide iniciar el motor de reescritura o esto no funcionará!

# Start rewrite engine 
<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
</IfModule> 

# Rewrite "www.example.com -> example.com" 
<IfModule mod_rewrite.c> 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule^http://%1%{REQUEST_URI} [R=301,L] 
</IfModule> 
Cuestiones relacionadas