最近在改一些東西,包括Discuz論壇,在處理Discuzde修改時(shí)特別是重新寫了一個(gè)404de頁(yè)面,讓用戶訪問不存在de頁(yè)面時(shí)去訪問這個(gè)404頁(yè)面。但是遇到了一個(gè)很奇怪de問題,即無法重定向到這個(gè)頁(yè)面。
為瑪納斯等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及瑪納斯網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、瑪納斯網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
最初操作:
1、把a(bǔ)pache中de配置文件里 加入代碼:ErrorDocument 404 /404.php
2、在404頁(yè)面de代碼里加上?php header(”HTTP/1.0 404 Not Found” ? 。這個(gè)方法是向客戶端發(fā)送一個(gè)自然deHTTP頭。這個(gè)方法要在沒you向客戶端發(fā)送任何信息之前使用,因此加在404.phpde文件頭最好。
經(jīng)過對(duì)配置文件和DZ論壇代碼de查看,發(fā)現(xiàn)原因:rewrite規(guī)則問題,即我做偽靜態(tài)de處理,導(dǎo)致第二種地址規(guī)則you效,于是已經(jīng)pass過了服務(wù)器層,apachede404定義不再起作用,所以在讀取數(shù)據(jù)dephp文件會(huì)被執(zhí)行。針對(duì)這種情況應(yīng)該做處理。
處理:
1、找到被執(zhí)行de文件:如viewthread.php;
2、在查詢數(shù)據(jù)后,加上對(duì)數(shù)據(jù)de判斷,如果為空,則填寫重定向代碼;
3、代碼:
if(如果沒you任何結(jié)果)
{
//以前是僅僅顯示“該帖子已經(jīng)不存在”de提示,現(xiàn)在是:
require(’/404.php’);
@header(’HTTP/1.1 404 Not Found’);
@header(’Status: 404 Not Found’);
exit;
}
結(jié)果:以上問題解決,可以以404de狀態(tài)重定向到我自定義de404頁(yè)面。
用header函數(shù)跳轉(zhuǎn):
header("location:test.php")
如果我的回答沒能幫助您,請(qǐng)繼續(xù)追問。
做網(wǎng)站優(yōu)化,我們基本知道url標(biāo)準(zhǔn)化需要采用301重定向。重定向說直白點(diǎn),就是通過方法將各種網(wǎng)絡(luò)請(qǐng)求重新定個(gè)方向轉(zhuǎn)到其它位置,也就是通常說的,網(wǎng)頁(yè)跳轉(zhuǎn)。那么如何設(shè)置和制作301重定向呢?下面列舉幾個(gè)比較常見的情況:
步驟/方法
第一種:對(duì)整個(gè)網(wǎng)站的多個(gè)頁(yè)面設(shè)置301重定向方法
如果要對(duì)整個(gè)網(wǎng)站設(shè)置301重定向的話,建議大家還是單獨(dú)建立一個(gè)301.php,文件名可以自己取。代碼如下:
?php
$the_host = $_SERVER['HTTP_HOST']; //取得進(jìn)入所輸入的域名[網(wǎng)址:像]
$the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; //判斷地址后面部分
$the_url = strtolower($the_url); //將英文字母轉(zhuǎn)成小寫
if($the_url=="/index.php") //判斷是不是首頁(yè)
{
$the_url=""; //如果是首頁(yè),賦值為空
}
if($the_host !== '')//如果域名不是帶www的網(wǎng)址那么進(jìn)行下面的301跳轉(zhuǎn)
{
header('HTTP/1.1 301 Moved Permanently'); //發(fā)出301頭部
header('Location:'.$the_url); //跳轉(zhuǎn)到帶www的網(wǎng)址
}
?
注 意一下:代碼if($the_host !== '')中的“!==”是不完全等于的意思,也可以用“!=”不等于,這樣,除了可以將siyuan-seo.com 跳轉(zhuǎn)到帶www的網(wǎng)址,還可以把所有綁定到這個(gè)空間的域名跳轉(zhuǎn)的。
301.php文件寫好后,用ftp軟件上傳到網(wǎng)站根目錄下,一般就是web文件下。那么怎么調(diào)用呢?其實(shí)也很簡(jiǎn)單。
在需要設(shè)置301重定向的頁(yè)面中調(diào)用301.php,代碼:?php include("301.php"); //301重定向 ?將這個(gè)代碼放到你所有網(wǎng)頁(yè)的最前面,這樣就做好了。如下圖:
2
第二種:網(wǎng)站單個(gè)頁(yè)面設(shè)置301重定向方法
如果僅僅是網(wǎng)站中某個(gè)單頁(yè)面進(jìn)行301重定向設(shè)置,其實(shí)很簡(jiǎn)單,只要在PHP頁(yè)面的頭部加上下面兩行代碼就可以了:
?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: ");
?如下圖:
其實(shí),大多數(shù)情況下,我們一般是不需要設(shè)置301重定向的,用到的情況也是很少,大家知道怎么做就可以了。
當(dāng)你發(fā)現(xiàn)自己的才華撐不起野心時(shí),就請(qǐng)安靜下來學(xué)習(xí)吧
文章題目:php如何帶數(shù)據(jù)重定向 php獲取重定向后的地址
轉(zhuǎn)載注明:http://aaarwkj.com/article44/docpsee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務(wù)、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、網(wǎng)站制作、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)