Pregunta ¿Cómo puedo hacer cumplir que mis URL siempre comienzan con www?


Quiero asegurar que los usuarios vengan a www.mydomain.com incluso si llegan a través del alias mydomain.com. Esto es para que yo tenga control sobre las cookies en los subdominios, y para que Google vea un solo dominio y no un montón de URL.

¿Cómo puedo hacer esto con apache?


17
2018-04-30 11:40


origen


¿Puedo sugerirte que, en cambio, inviertas esto y apliques mydomain.com en su lugar? El prefijo 'www' es redundante y totalmente innecesario. - Eevee
Las cookies se envían a todos los subdominios en mydomain.com, mientras que puedo decidir por mí misma qué cookies se cargan desde donde se encuentra www.mydomain.com. Por ejemplo, puedo evitar agregar cookies a static.mydomain.com, para que no se utilicen cookies. No se transmite por cada imagen que se carga. Definitivamente no es innecesario. - Magnar
Específicamente puede decirle a Google que use un solo estilo de enlace. Vea mi respuesta a continuación. - Robinicks
No tengo el representante, pero sería útil agregar estas etiquetas: redirectmatch mod_alias - Tom
Aunque esto es mucho más tarde, sigue siendo relevante. www es no En desuso, porque un dominio sin subdominio tiene varias desventajas. Ver yes-www.org/why-use-www por varias razones para utilizar www. - user50849


Respuestas:


<VirtualHost ip:80>
   ServerName domain.com
   RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>

<VirtualHost ip:80>
   ServerName www.domain.com

   ... usual config
</VirtualHost>

17
2018-04-30 11:43



Para una solución un poco más simple, puede: "Redirigir permanente / ptth: //www.domain.com/" y apache conservará automáticamente el sufijo. (Invertí http para deshabilitar el enlace automático). - Greg Hewgill
De Verdad ? Dulce, nunca lo supe. Siempre pensé que tenía que usar RedirectMatch para preservar las partes finales del URI - Dave Cheney


Agrega esto a tu httpd.conf expediente:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

4
2018-04-30 11:42





Habilite la compatibilidad con mod_rewrite y luego cree un archivo .htaccess en la carpeta raíz para su dominio con el siguiente contenido:

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTP_HOST} ^domain\.com$
   RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

4
2018-04-30 11:43



No olvide hacer que la prueba RewriteCond no distinga mayúsculas de minúsculas ... - Alnitak
Solo haga esto si no tiene acceso para realizar cambios en el archivo de configuración de apache por algún motivo. .htaccess los archivos tienen una gran cantidad de sobrecarga, y las reescrituras dentro de ellos lo empeoran mucho más. - John Dalton
usar Redirect siempre es preferible a usar mod_rewrite para esta tarea. - David Pashley


Si realmente desea que Google use un estilo de dominio específico (con o sin www) entonces crea un libre Herramientas para webmasters de Google cuenta, verifique la propiedad de su dominio (cargue un archivo) y configure su dominio preferido utilizando el panel de control en línea.

Es así de simple, y no necesita cambiar ningún código del lado del servidor, también los enlaces entrantes con o sin www Serán tratados de la misma manera aumentando el PageRank de sus páginas.

Los enlaces pueden apuntar a su sitio usando   Las versiones www y no www de   la URL (por ejemplo,    http://www.example.com y    http://example.com). El preferido   El dominio es la versión que quieres.   utilizado para su sitio en la búsqueda    resultados.

Una vez que nos digas tu dominio preferido   nombre, tendremos en cuenta su preferencia cuando   mostrando las URLs. Puede tomar algo   tiempo antes de que veas este cambio completamente   Reflejado en nuestro índice.

Si tu no hacer especifique un dominio preferido,   podemos tratar la www y   Versiones no www del dominio como   Referencias separadas a páginas separadas.


3
2018-05-30 06:54





Tuve el problema opuesto, la gente va a www.domain.com cuando solo quiero servir directamente desde domain.com:

<VirtualHost *:80>
   ServerName domain.com

   ... usual config
</VirtualHost>

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias sub.domain.com # can also catch some other subdomains
   ServerAlias *.domain.com # or all previously unmatched domains

   Redirect permanent / http://domain.com/
</VirtualHost>

Como mencionó Greg Hewgill, usar Redirect es un poco más simple que RedirectMatch y hace el mismo trabajo, vea http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect para más detalles.


1
2017-10-13 11:57