2010-10-28 15 views
5

Ho un dominio dire http://www.testexample.com. Quando accedo a http://www.testexample.com e torno a http://testexample.com nel browser; le informazioni utente registrate non sono visualizzate.
Io so che entrambi i precedenti sono trattati in modo diverso e quindi non sta mantenendo la sessione per http://www.testexample.com mentre si accede a http://testexample.com.Siti www e non www

Per favore fatemi sapere se cakephp ha un modo per fare una partita sul TLD. Così ogni volta che ho tipo http://testexample.com che dovrebbe prendere sessione per http://www.testexample.com

Sto usando il seguente codice per reindirizzare da un URL all'altro

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

questo è sulla mia macchina di prova locale. Questo funziona a volte e talvolta no.
Inoltre ho aggiunto la direttiva rewritelog al mio file httpd.conf. Ma il file di registro non viene aggiornato. Per favore fatemi sapere se qualcuno ha dei suggerimenti su questo.

+0

meglio adattato a http://webmasters.stackexchange.com/questions votando per chiudere – Svisstack

+2

Votare su ... per annullare chi ha votato questa domanda giù. –

risposta

5

Usa .htaccess per reindirizzare tutti http://domain.com ->http://www.domain.com

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

u postato prima di tutto e cancellato il mio :-) –

+2

Penso che questa sia una soluzione migliore, perché quindi l'utente utilizzerà solo un dominio e l'esperienza sarà meno confusa (ad esempio i collegamenti visitati cambierebbero se visitasse due domini) . Inoltre, è meglio il caching, dato che avremo solo una copia di ciascuna risorsa. –

+0

estesamente: la pubblicazione di entrambi gli URL non ha senso. usa 'www' sopra ''. – mark

4

impostare il dominio per il cookie come testexample.com, allora può essere condiviso tra sottodomini così come non preoccuparsi di www.

+0

Sto utilizzando il componente Auth di Cakephp per la sessione e le informazioni dell'utente provengono dallo stesso. Sarebbe stato realizzato con i biscotti allora? – madhu

+0

Anche se si utilizzano sessioni, viene comunque creato un cookie in modo che l'utente possa essere abbinato al file di sessione (o tabella) sul server.Non conosco Cake, non l'ho mai usato, ma guarda questo, potrebbe indicarti la giusta direzione. http://kodegeek.wordpress.com/tag/cakephp/ – G3D

0

Prova ini_set('session.cookie_domain', $domain); (documentato as ini_set session.cookie_domain e session_set_cookie_params()), dove $ dominio è il nome di dominio preceduto da un .. Quindi, utilizzando il dominio example.com (per rfc 2606), utilizza:

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

Si prega di notare che questa non è una soluzione specifica CakePHP - guardando the code for CakeSession, session.cookie_domain non è mai impostato, il che significa che cade a è il valore predefinito. Riempire quella linea nel tuo app/config/bootstrap.php o app/config/core.php dovrebbe farlo per te.

2

Se si dispone di molti progetti e non si vuole codificare il tuo nome di dominio su .htaccess più e più volte, provare questo codice:

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

questo reindirizza non www a www. Mentre utilizzi cakephp, inseriscilo nel tuo .htaccess che si trova a /webroot

+0

+1 questo è il modo migliore per aggiungere 'www' al tuo dominio, ma ancora meglio è:' RewriteRule. http: //www.% {HTTP_HOST} /% {REQUEST_URI} [R = 301, L] ' – anubhava

+0

molto bello, grazie :) –

Problemi correlati