2010-10-28 6 views
5

J'ai un domaine dire http://www.testexample.com. Lorsque je me connecte à http://www.testexample.com et revenir à http://testexample.com dans le navigateur; les informations de l'utilisateur connecté ne sont pas affichées.
Je sais que les deux ci-dessus sont traités différemment et par conséquent il ne conserve pas la session http://www.testexample.com tout en accédant http://testexample.com.sites Www et non www

Veuillez me faire savoir si cakephp a un moyen de faire une correspondance sur le TLD. Donc, chaque fois que je tape http://testexample.com il devrait prendre pour la session http://www.testexample.com

J'utilise le code suivant pour rediriger d'une URL à l'autre

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

c'est sur ma machine de test local. Cela fonctionne parfois et parfois non.
J'ai également ajouté la directive rewritelog à mon fichier httpd.conf. Mais le fichier journal n'est pas mis à jour. S'il vous plaît laissez-moi savoir si quelqu'un a des pointeurs à ce sujet.

+0

mieux adapté à http://webmasters.stackexchange.com/questions votant pour fermer – Svisstack

+2

Voting up .. pour annuler qui a voté pour cette question vers le bas. –

Répondre

5

.htaccess Permet de rediriger tous les http://domain.com ->http://www.domain.com

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

u posté premier des thats y mien :-) –

+2

Je délétés pense que cela est une meilleure solution, car alors l'utilisateur utilisera uniquement un domaine, et l'expérience sera moins confus (par exemple, les liens visités changeraient s'il a visité deux domaines) . En outre, il est préférable de mettre en cache, car nous n'aurons qu'une seule copie de chaque ressource. –

+0

extactly - servir les deux URL n'a aucun sens. utilisez 'www' sur ''. – mark

4

Définissez le domaine du cookie testexample.com, il peut être partagé entre les sous-domaines et ne pas se soucier de www.

+0

J'utilise le composant Cakephp Auth pour la session et les informations de l'utilisateur proviennent de la même. Serait-il réalisé avec des cookies alors? – madhu

+0

Même si vous utilisez des sessions un cookie est créé encore afin que l'utilisateur peut être adapté au fichier de session (ou table) sur le serveur.Je ne connais pas Cake, je ne l'ai jamais utilisé, mais vérifiez cela, pourrait vous pointer dans la bonne direction. http://kodegeek.wordpress.com/tag/cakephp/ – G3D

0

Essayez ini_set('session.cookie_domain', $domain); (documenté as ini_set session.cookie_domain et session_set_cookie_params()), où $ domain est votre préfixe de domaine .. Ainsi, en utilisant le domaine example.com (par rfc 2606), vous pouvez utiliser:

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

S'il vous plaît noter que ce n'est pas une solution spécifique CakePHP - regardant the code for CakeSession, session.cookie_domain est jamais définie, ce qui signifie qu'elle tombe c'est la valeur par défaut. Farce cette ligne dans votre app/config/bootstrap.php ou app/config/core.php devrait le faire pour vous.

2

Si vous avez de nombreux projets et ne veulent pas coder en dur votre nom de domaine sur .htaccess encore et encore, essayez ce code:

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

ce redirigera non www www. Alors que vous utilisez cakephp, alors mettez-le sur votre .htaccess qui se trouve au /webroot

+0

+ 1 Ceci est une meilleure façon d'ajouter 'www' à votre domaine mais mieux encore:' RewriteRule. http: //www.% {HTTP_HOST} /% {REQUEST_URI} [R = 301, L] ' – anubhava

+0

très agréable, merci :) –

Questions connexes