2010-10-28 34 views
5

Tengo un dominio decir http://www.testexample.com. Cuando inicio sesión en http://www.testexample.com y vuelvo al http://testexample.com en el navegador; la información de usuario registrada no se muestra.
Sé que los dos anteriores se tratan de manera diferente y, por lo tanto, no se conserva la sesión para http://www.testexample.com mientras se tiene acceso a http://testexample.com.sitios Www y no www

Háganme saber si cakephp tiene una manera de hacer un partido en el TLD. Así que cada vez que escribo http://testexample.com que debe tomar la sesión para http://www.testexample.com

estoy usando el siguiente código para redirigir a una URL a la otra

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ps6309 [NC] 
RewriteRule ps6309.domain.co.in [L,R=301] 

esto es en mi máquina de prueba local. Esto funciona a veces y a veces no.
También he agregado la directiva rewritelog a mi archivo httpd.conf. Pero el archivo de registro no se está actualizando. Háganme saber si alguien tiene alguna sugerencia para esto.

+0

mejor calce a http://webmasters.stackexchange.com/questions votando para cerrar – Svisstack

+2

Votando ... para anular quién votó esta pregunta abajo. –

Respuesta

5

uso de .htaccess para redirigir todas las http://domain.com ->http://www.domain.com

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

u publicó primero que se eliminó el mío :-) –

+2

Creo que esta es una solución mejor, porque entonces el usuario solo usará un dominio, y la experiencia será menos confusa (por ejemplo, los enlaces visitados cambiarían si visitara dos dominios) . Además, es mejor el almacenamiento en caché, ya que solo tendremos una copia de cada recurso. –

+0

extactly - servir ambas direcciones no tiene sentido. usa 'www' encima ''. – mark

4

Establecer el dominio de la cookie como testexample.com, entonces puede ser compartida a través de subdominios, así como no tener que preocuparse por www.

+0

Estoy usando el componente Cakephp Auth para la sesión y la información del usuario proviene de la misma. ¿Se lograría con las cookies entonces? – madhu

+0

Aunque está utilizando sesiones, se crea una cookie para que el usuario pueda coincidir con el archivo de sesión (o tabla) en el servidor.No conozco a Cake, nunca lo usé pero revisa esto, podría señalarte en la dirección correcta. http://kodegeek.wordpress.com/tag/cakephp/ – G3D

0

Pruebe ini_set('session.cookie_domain', $domain); (documentado as ini_set session.cookie_domain y session_set_cookie_params()), donde $ dominio es su nombre de dominio precedido por .. Por lo tanto, utilizando el dominio example.com (por rfc 2606), tendrá que utilizar:

ini_set('session.cookie_domain', '.example.com'); 

Tenga en cuenta que esto no es una solución específica CakePHP - mirando the code for CakeSession, session.cookie_domain no está establecido, es decir, que cae a es el valor predeterminado. Rellenar esa línea en su app/config/bootstrap.php o app/config/core.php debería hacerlo por usted.

2

Si tiene muchos proyectos y no desea codificar su nombre de dominio en .htaccess una y otra vez, probar este código:

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

Esto redirigirá sin www a www. Mientras está usando cakephp, póngalo en su .htaccess que se encuentra en /webroot

+0

+1 esta es una forma mucho mejor de agregar 'www' a su dominio, pero aún mejor es:' RewriteRule. http: //www.% {HTTP_HOST} /% {REQUEST_URI} [R = 301, L] ' – anubhava

+0

muy agradable, gracias :) –

Cuestiones relacionadas