2010-10-28 25 views
5

Ich habe eine Domain sagen http://www.testexample.com. Wenn ich mich an http://www.testexample.com anmelden und zurück zu http://testexample.com im Browser komme; Die eingeloggten Benutzerinformationen werden nicht angezeigt.
Ich weiß, dass die beiden oben anders behandelt werden und daher nicht die Sitzung für http://www.testexample.com beim Zugriff auf http://testexample.com beibehalten.Www und nicht www Seiten

Bitte lassen Sie mich wissen, wenn CakePHP eine Möglichkeit hat, ein Match auf der TLD zu tun. Also, wenn ich http://testexample.com Typen sollte es dauern Sitzung für http://www.testexample.com

ich den folgenden Code verwenden von einer URL zum anderen

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

dies auf meiner lokalen Test-Maschine zu umleiten. Dies funktioniert manchmal und manchmal nicht.
Auch ich habe die Rewritelog-Direktive zu meiner httpd.conf Datei hinzugefügt. Die Protokolldatei wird jedoch nicht aktualisiert. Bitte lassen Sie mich wissen, wenn jemand irgendwelche Hinweise darauf hat.

+0

ist besser passen zu http://webmasters.stackexchange.com/questions Voting zu schließen – Svisstack

+2

Abstimmung .. zu annullieren, wer diese Frage gewählt hat Nieder. –

Antwort

5

Verwenden .htaccess umleiten alle http://domain.com ->http://www.domain.com

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

Du schreibst zuerst das ist y gelöscht :-) –

+2

Ich denke, das ist eine bessere Lösung, weil dann der Benutzer nur eine Domäne verwendet, und die Erfahrung wird weniger verwirrend sein (zB die besuchten Links würden sich ändern, wenn er zwei Domains besucht) . Außerdem ist es besser zwischenspeichern, da wir nur eine Kopie jeder Ressource haben. –

+0

extactly - beiden URLs zu dienen macht keinen Sinn. benutze 'www' über ''. – mark

4

die Domäne für den Cookie als testexample.com Set, dann kann es auch über Subdomains geteilt werden nicht über www besorgniserregend.

+0

Ich benutze Cakephp Auth-Komponente für die Sitzung und die Benutzerinformationen stammen aus dem gleichen. Würde es dann mit Cookies erreicht werden? – madhu

+0

Obwohl Sie Sitzungen verwenden, wird immer noch ein Cookie erstellt, sodass der Benutzer der Sitzungsdatei (oder Tabelle) auf dem Server zugeordnet werden kann.Ich kenne Cake nicht, habe es nie benutzt, aber schau es dir an, vielleicht zeigst du es in die richtige Richtung. http://kodegeek.wordpress.com/tag/cakephp/ – G3D

0

Versuchen ini_set('session.cookie_domain', $domain); (dokumentiert as ini_set session.cookie_domain und session_set_cookie_params()), wobei $ Domäne Ihr Domain-Name von einem . vorangestellt. Also, um die Domain example.com mit (pro rfc 2606), dann würden Sie verwenden:

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

Bitte beachten Sie, dass dies nicht eine CakePHP spezifische Lösung - Blick auf the code for CakeSession wird session.cookie_domain nie gesetzt, was bedeutet, dass es fällt Es ist der Standardwert. Stopf diese Linie in Ihrem app/config/bootstrap.php oder app/config/core.php sollte es für Sie tun.

2

Wenn Sie viele Projekte haben und wollen nicht zu hart Code Ihren Domain-Namen auf .htaccess wieder und immer wieder, versuchen Sie diesen Code:

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

dies nicht www www umleiten. Während Sie CakePHP verwenden, dann setzen Sie es auf Ihre .htaccess, die unter /webroot

+0

+1 das ist viel besser Weg, 'www' zu Ihrer Domain hinzuzufügen, aber noch besser ist:' RewriteRule. http: //www.% {HTTP_HOST} /% {REQUEST_URI} [R = 301, L] ' – anubhava

+0

sehr nett, danke :) –