2010-08-04 49 views
0

由於一些奇怪的原因,如果地址欄在完整網站名稱前沒有www,我的CMS將註銷。例如,當我們輸入xyz.com時,它會帶我到網站,但它不會顯示爲登錄,如果我輸入www.xyz.com它會找到cookie並顯示我登錄。.htaccess文件在filezilla中消失?如何檢查文件是否存在?

什麼我想要做的是,當用戶輸入xyz.com時,我希望它直接(對用戶透明)訪問www.xyz.com。我想在xyz.com之前添加www。我試圖在index.php所在目錄中添加一個.htaccess文件,這是htaccess文件中的代碼。當我通過FTP傳輸FileZilla的它

DirectoryIndex index.php
Redirect xyz.com www.xyz.com/index.php

.htaccess文件正在消失。

回答

0

如果你願意修改您的index.php你可以在下面的邏輯添加到該文件的頂部:

/*This is a tempory redirection from mysite.com to www.mysite.com*/ 
if($_SERVER['SERVER_NAME'] == 'mysite.com') 
{ 
    $redirect =  $_SERVER['REQUEST_URI']; 
    header('Location: http://www.mysite.com'. $redirect) ; 
} 
+0

哇,謝謝。我第二次解決了我的問題:) 我現在不必處理htaccess或任何東西。好工作Lobsterm :) – 2010-08-04 20:47:47

0

嘗試這種在htaccess文件:

選項+的FollowSymLinks
RewriteEngine敘述上
的RewriteCond%{HTTP_HOST}^$ xyz.com
重寫規則^/$「http://www.xyz.com 「[R = 301,L]

但是,您的問題聽起來像Cookie相關。 CMS可能使用cookie來檢查登錄狀態,但cookie域參數是「www.xyz.com」而不是「.xyz.com」。

--- ---編輯

提高比特的代碼的最後一行(它被測試和工作),但作爲TCP說,必須啓用mod_rewrite的。如果您無法啓用它,請嘗試使用Lobsterm發佈的代碼,如果您無法執行此操作,則可以嘗試將Cookie域參數從「www.xyz.com」更改爲「.xyz.com」

+0

是,cookie的存在,但不當xyz.com存在於URL中時使用。只有當www.xyz存在時,cookie才被使用。 – 2010-08-04 18:56:17

+0

好吧,我已經嘗試把'選項+ FollowSymlinks RewriteEngine rewritecond%{http_host}^xyz.com [nc] rewriterule ^(。*)$ http://www.xyz.com/$1 [r = 301 ,nc]'在我的.htaccess文件中,並且我已經將這個文件放在了index.php所在的同一個文件夾中,但它不起作用? :( – 2010-08-04 18:59:50

0

如果你想使用重寫,確保了mod_rewrite被加載在Apache的conf文件並檢查AllowOverride參數是否設置爲全部或只是您允許的指令.htaccess

也作爲aletzo說,你可能想要你的cookie要覆蓋整個域名,請將cookie域從www.example.com更改爲example.com。 然後,如果用戶使用www前綴或在子域內訪問,則無關緊要。

編輯:很高興你找到你要找的答案,但如果您需要FileZilla的展示你的未來,服務器的.htaccess - >強制顯示隱藏文件

+0

感謝您的提示tcp :) – 2010-08-05 01:59:15

相關問題