DiscuzX3.n系列網域名稱轉向問題的解決,discuzx3.n網域名稱轉向
因各種原因,原使用http://bbs.lgms.net網域名稱需轉向到http://www.szlgcn.com網域名稱。
我寫了一個301.inc.php的包含檔案,目的是讓有需要引用的論壇程式檔案在需要時引用。
301.inc.php檔案的內容:
<?php
$the_host = $_SERVER['HTTP_HOST']; //取得當前訪問網域名稱
$url = $_SERVER['PHP_SELF']; //擷取網域名稱後的字串,如:/bbs/index.php
$filename= substr( $url , strrpos($url , '/')+1 ); //提取當前檔案名稱
$querystring = $_SERVER['QUERY_STRING']; //擷取問號後面的參數
//echo ' location='.$the_host.'/'.$filename.'?'.$querystring; //測試之用,看看取得的連結
if ($the_host !== 'www.szlgcn.com') //驗證當前訪問網域名稱(就是你的新網域名稱):若非引號內的網域名稱,則進行如下跳轉——
{
if ($querystring !== '') //驗證檔案名稱後是否有參數,如果有參數則跳轉到——
{
echo '<script language="javascript">';
echo ' location="http://www.szlgcn.com/'.$filename.'?'.$querystring.'"';
echo '</script>';
}
elseif ($filename == 'index.php') //如果是首頁則直接跳轉到新網域名稱
{
echo '<script language="javascript">';
echo ' location="http://www.szlgcn.com/"';
echo '</script>';
}
else //如果無參數則跳轉到——
{
echo '<script language="javascript">';
echo ' location="http://www.szlgcn.com/'.$filename.'"';
echo '</script>';
}
}
?>
在可能涉及轉向的程式檔案中引用,比如:forum.php,引用方式是在"<?php"的下面插入第二行:
include('301.inc.php');
結果類似這樣:
<?php
include('301.inc.php'); //301重新導向
//後面為您的其他代碼
?>
OK.
備忘:上述“涉及轉向的程式檔案”在DZ X3.n版本中可能有:
search.php,portal.php,home.php,group.php等。比如:http://bbs.lgms.net/forum.php?mod=viewthread&tid=16787
註:如想修改plugin.php,index.php, member.php等則還需要對相關程式做微調,在此不細說。
以上解決方案顯得較為複雜,還可能出現預想不到的問題,比如:圖片上傳時可能不顯示等。
有沒有更好的解決方案呢?有!
那就是使用Apache設定檔,利用IfModule mod_rewrite.c配置節進行網域名稱轉向。
1、使用ps -aux查看所有進程並找到WEB服務所在的目錄。
2、在Apache所在的目錄找到httpd.conf檔案。
3、對httpd.conf進行修改:
(1)保證LoadModule rewrite_module modules/mod_rewrite.so有效(如前面有#,去掉#);
(2)修改ServerName localhost:80,ServerAdmin yourQQNo@qq.com(選做);
(3)修改網站所在目錄的Options FollowSymLinks後的AllowOverride為All(一般情況下為None)。
(4)增加<IfModule mod_rewrite.c>節,內容為:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^bbs.lgms.net [NC]
RewriteRule ^(.*)$ http://www.szlgcn.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^s.lgms.net [NC]
RewriteRule ^(.*)$ http://www.szlgcn.com/$1 [R=301,L]
</IfModule>
註:請在相關位置換成你自己的網域名稱或轉向替換網址。
4、修改完成後,重啟Apache。命令為:service httpd restart。
OK。測試正常,說明已成功。
網域名稱轉向
針對你的問題,其實處理起來很簡單。
一般的免費空間是不支援網域名稱綁定的,所以直接綁定不存在可能,那麼可以滿足你的要求的就是做URL轉寄,也就是網域名稱轉向!
比如你的免費空間提供的次層網域地址是top.admin5.com,而你的網域名稱是cnbeg.com 那麼你只要登入你的cnbeg.com的網域名稱管理,然後設定URL轉寄,主機頭可以填寫WWW,然後轉寄到top.admin5.com,其他大概使用類似!
希望早日解決!
助,對於網域名稱轉向詳細解釋
....我以前做過,但是具體不清楚了,說下我的思路吧,先用頂層網域做個網站,然後用跳轉的方式在網站上設定,設定幾秒跳轉,代碼我就不知道了,如果下面的人知道,就貼上來吧,分數給他我也無所謂。