2010-10-28 52 views
5

Tôi có miền nói http://www.testexample.com. Khi tôi đăng nhập vào http://www.testexample.com và quay lại http://testexample.com trong trình duyệt; thông tin người dùng đã đăng nhập không được hiển thị.
Tôi biết rằng cả hai điều trên đều được xử lý khác nhau và do đó nó không giữ lại phiên cho http://www.testexample.com khi truy cập http://testexample.com.Trang web www và không www

Vui lòng cho tôi biết nếu cakephp có cách thực hiện đối sánh trên TLD. Vì vậy, bất cứ khi nào tôi gõ http://testexample.com nó nên đưa phiên cho http://www.testexample.com

Tôi đang sử dụng đoạn mã sau để chuyển hướng từ một URL để người kia

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

này là trên máy tính thử nghiệm địa phương của tôi. Điều này đôi khi có tác dụng.
Ngoài ra tôi đã thêm chỉ thị rewritelog vào tệp httpd.conf của mình. Nhưng tệp nhật ký không được cập nhật. Vui lòng cho tôi biết nếu có ai có bất kỳ gợi ý nào về vấn đề này.

+0

phù hợp hơn với http://webmasters.stackexchange.com/questions bỏ phiếu để đóng – Svisstack

+2

Bỏ phiếu .. để vô hiệu hóa người đã bỏ phiếu cho câu hỏi này xuống. –

Trả lời

5

Sử dụng .htaccess để chuyển hướng tất cả http://domain.com ->http://www.domain.com

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

u được đăng lần đầu tiên y đã xóa của tôi :-) –

+2

Tôi nghĩ đây là giải pháp tốt hơn, vì sau đó người dùng sẽ chỉ sử dụng một miền và trải nghiệm sẽ ít khó hiểu hơn (ví dụ: các liên kết đã truy cập sẽ thay đổi nếu anh ấy truy cập hai tên miền) . Ngoài ra, nó là bộ nhớ đệm tốt hơn, vì chúng tôi sẽ chỉ có một bản sao của mỗi tài nguyên. –

+0

chính xác - phục vụ cả hai url đều không có ý nghĩa. sử dụng 'www' trên ''. – mark

4

Đặt miền với cookie như testexample.com, sau đó nó có thể được chia sẻ trên các lĩnh vực phụ cũng như không lo lắng về www.

+0

Tôi đang sử dụng thành phần Cakehp Auth cho phiên và thông tin người dùng đến từ cùng một. Nó sẽ đạt được với cookie sau đó? – madhu

+0

Mặc dù bạn đang sử dụng phiên, cookie vẫn được tạo để người dùng có thể được đối sánh với tệp phiên (hoặc bảng) trên máy chủ.Tôi không biết Bánh, không bao giờ sử dụng nó nhưng kiểm tra điều này, có thể chỉ cho bạn đi đúng hướng. http://kodegeek.wordpress.com/tag/cakephp/ – G3D

0

Hãy thử ini_set('session.cookie_domain', $domain); (được ghi lại as ini_set session.cookie_domainsession_set_cookie_params()), trong đó $ domain là tên miền của bạn được đặt trước bởi .. Vì vậy, sử dụng example.com miền (mỗi rfc 2606), bạn muốn sử dụng:

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

Xin lưu ý rằng đây không phải là một giải pháp cụ thể CakePHP - nhìn the code for CakeSession, session.cookie_domain không bao giờ được thiết lập, nghĩa là nó rơi xuống đó là giá trị mặc định. Nhét dòng đó vào số app/config/bootstrap.php hoặc app/config/core.php của bạn nên làm điều đó cho bạn.

2

Nếu bạn có nhiều dự án và không muốn cứng mã tên miền của bạn trên .htaccess một lần nữa và hơn nữa, hãy thử mã này:

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

này sẽ chuyển hướng phi www www. Trong khi bạn đang sử dụng cakephp, sau đó đặt nó trên .htaccess của bạn được đặt tại /webroot

+0

+1 đây là cách tốt hơn để thêm 'www' vào miền của bạn nhưng tốt hơn là:' RewriteRule. http: //www.% {HTTP_HOST} /% {REQUEST_URI} [R = 301, L] ' – anubhava

+0

rất đẹp, cảm ơn :) –

Các vấn đề liên quan