本文目錄一覽:
- 1、php網站建設怎麼做301重定向設置
- 2、有人知道做php程序的301重定向嗎?拜託各位了 3Q
- 3、如何通過PHP實現域名跳轉
- 4、php如何獲取301重定向前的域名
- 5、php location 默認是301還是302
- 6、phpcms 偽靜態url怎麼設置301
php網站建設怎麼做301重定向設置
做網站優化,我們基本知道url標準化需要採用301重定向。重定向說直白點,就是通過方法將各種網絡請求重新定個方向轉到其它位置,也就是通常說的,網頁跳轉。那麼如何設置和製作301重定向呢?下面列舉幾個比較常見的情況:
步驟/方法
第一種:對整個網站的多個頁面設置301重定向方法
如果要對整個網站設置301重定向的話,建議大家還是單獨建立一個301.php,文件名可以自己取。代碼如下:
?php
$the_host = $_SERVER[‘HTTP_HOST’]; //取得進入所輸入的域名[網址:像]
$the_url = isset($_SERVER[‘REQUEST_URI’]) ? $_SERVER[‘REQUEST_URI’] : ”; //判斷地址後面部分
$the_url = strtolower($the_url); //將英文字母轉成小寫
if($the_url==”/index.php”) //判斷是不是首頁
{
$the_url=””; //如果是首頁,賦值為空
}
if($the_host !== ”)//如果域名不是帶www的網址那麼進行下面的301跳轉
{
header(‘HTTP/1.1 301 Moved Permanently’); //發出301頭部
header(‘Location:’.$the_url); //跳轉到帶www的網址
}
?
注 意一下:代碼if($the_host !== ”)中的“!==”是不完全等於的意思,也可以用“!=”不等於,這樣,除了可以將siyuan-seo.com 跳轉到帶www的網址,還可以把所有綁定到這個空間的域名跳轉的。
301.php文件寫好後,用ftp軟件上傳到網站根目錄下,一般就是web文件下。那麼怎麼調用呢?其實也很簡單。
在需要設置301重定向的頁面中調用301.php,代碼:?php include(“301.php”); //301重定向 ?將這個代碼放到你所有網頁的最前面,這樣就做好了。如下圖:
2
第二種:網站單個頁面設置301重定向方法
如果僅僅是網站中某個單頁面進行301重定向設置,其實很簡單,只要在PHP頁面的頭部加上下面兩行代碼就可以了:
?php
Header(“HTTP/1.1 301 Moved Permanently”);
Header(“Location: “);
?如下圖:
其實,大多數情況下,我們一般是不需要設置301重定向的,用到的情況也是很少,大家知道怎麼做就可以了。
當你發現自己的才華撐不起野心時,就請安靜下來學習吧
有人知道做php程序的301重定向嗎?拜託各位了 3Q
如果你的cms里有通用文件的話,加入以下代碼//加入**始$the_host = $_SERVER[‘HTTP_HOST’];//取得當前域名 $request_uri = isset($_SERVER[‘REQUEST_URI’]) ? $_SERVER[‘REQUEST_URI’] : ”;//判斷地址後面是否有參數 if($the_host != ‘ ‘)//把這裡的域名換上你想要的 { header(‘HTTP/1.1 301 Moved Permanently’);//發出301頭部 header(‘Location: ‘.$request_uri);//跳轉到你希望的地址格式 }//加入代碼結束。。。注意改一下裡面的域名哈 查看原帖
如何通過PHP實現域名跳轉
域名跳轉也就是平常所說的網站301重定向,由原來網站指向A地址的,但你想輸入網址後,轉到B地址上,這就是域名跳轉,也稱為Url轉發,一般適用於在多個域名綁定同一個建站CMS的根目錄的時候,在做搜索引擎排名的時候和避免讓用戶記住多個域名的情況下應用。
域名的跳轉分為幾種情況。有301跳轉(301是永久重定向),也有302臨時域名轉移。一般我們做跳轉的時候都是選擇做301跳轉。因為就優化角度來說,302不適用於網站優化。
進行301跳轉的話有三種方法。
第一種:web服務器做301跳轉。
這種情況適用於獨立服務器或者VPS使用。設置方法(以IIS6.0服務器為例):
遠程連接到你的服務器。然後打開IIS,在網站那裡,右鍵-屬性-網站-IP地址那裡點編輯增加一個站點,增加一個站點,綁定的一下主機頭,也可以綁定多個閑置域名。
打開IIS,首先新建立一個站點,隨便對應一個目錄。這個目錄下可以為空。在欲重定向的網頁或目錄上按右鍵;選中“重定向到URL”;在對話框中輸入目標頁面的地址;切記,記得選
中“資源的永久重定向”;當然,最後要點擊“應用”,完成。
其他Apache服務器進行跳轉的話,可以進行第二種情況。
第二種:代碼做301跳轉。
這種情況比較常用的。也是最為廣泛快捷的,就是在你需要跳轉的網站根目錄代碼裡面加上跳轉的代碼,跳轉到你的目標網站。
每個CMS的301跳轉代碼設置方法都不一樣,具體可以根據你網站所使用的CMS到網上搜索相應的代碼加入到相應的位置即可。有的是加在index.php/index.htm等文件,有的是直接添加在偽靜態文件,這個需要自行判斷。
第三種:直接在域名做301跳轉。
1、首先解析主域名,主機記錄為@,記錄類型為CNAME
2、接着解析帶www的域名,添加記錄,記錄類型為CNAME
3、記錄值依舊選擇服務器的IP地址
4、完成後需要等待域名解釋的DNS緩存才可以生效,生效後輸入主域名將直接跳轉到帶www的域名。
一般在做跳轉的時候,我們都是推薦使用前面兩種方法進行做域名的跳轉,尤其第一種辦法,最簡單快捷。而且可以立馬生效。
php如何獲取301重定向前的域名
首先找到你網站的入口文件,一般都是在根目錄里的 index.php 這個文件,用編輯器打開它,在這裡推薦您使用 Dreamweaver 這個軟件,功能很強大的,如果您電腦上沒有安裝有這個軟件,也可以使用記事本,這就是最簡單的編輯器了。
打開了,在所有代碼的最前面加上以下代碼即可,當然,所指的最前面沒有包涵 PHP 標識符,如果連這個都沒有了,代碼是無法運行的,因為它是 PHP 語言。
先上張圖看看吧。
使用說明:
$getUrl= $_SERVER[‘SERVER_NAME’] 是獲得當前輸入的 url 地址,也就是說訪問者在瀏覽器地址里輸入的域名地址。
$jumpUrl 這個變量是要跳轉到的 url 地址,也就是您網站的主域名。
如果您的網站是多個域名訪問的,可以保留判斷是否是主域名這段代碼,如果你只有一個域名進行訪問,可以把這一段刪除即可,關於如何使用這段代碼,在筆者貼上來的代碼里有說明,按照說明進行修改就行了。
這些設置好了之後,進行保存,上傳到您網站覆蓋原來的 index.php 文件,這樣,就做好了 301 跳轉了。
筆者就拿 和 這兩個域名來進行說明,當訪問者在瀏覽器的地址欄輸入 a.com 時,自動跳轉到 ,當訪問者在瀏覽器的地址欄輸入 b.com ,或者輸入 時,自動跳轉到 。
在這裡使用到 $_SERVER[‘SERVER_NAME’] 的 PHP 系統函數獲得傳進來的域名 URL 。
PHP 里的 substr() 是用來截取字符串的一部分,應該會使用的吧,裡面主要有三個參數,第一個參數是傳進來的字符串,這個參數是必須的;第二個參數是從第幾個開始截取,也是必須的;第三個是截多長的字符串,是可選的。
代碼片段:
$getUrl= $_SERVER[‘SERVER_NAME’];// 獲得當前輸入的 url
$jumpUrl= ‘Location:’;// 要進行跳轉的 url
if(substr($getUrl,0,4)!=’www.’){// 判斷 url 中是否帶 www
redirect($jumpUrl);
}
if(substr($getUrl,0,1) == ‘b’ || substr($getUrl,4,1) == ‘b’){// 判斷是否是主域名
redirect($jumpUrl);
}
/* 如果有多個域名,可以繼續添加
* 不想多解釋,你應該明白的,
*/
// 跳轉函數
function redirect($jumpUrl){
header(‘HTTP/1.1 301 Moved Permanently’);
header($jumpUrl);// 301 跳轉到設置的 url
exit();
}
php location 默認是301還是302
默認是302
php使用重定向寫法一般是header+Location
?php
header(“Location: “);
exit;
?
我們可以在瀏覽器調試查看到返回狀態碼Status Code默認是302
若要指定狀態碼為301則可以寫成
?php
header(“Location: “,TRUE,301);
exit;
?
phpcms 偽靜態url怎麼設置301
一個文章類網站換了全新的域名,原來的域名不方便記憶
因為關鍵詞在百度首頁前一、二名,所以就用了301重定項
把原有的域名 轉到
之前沒有做過301重定項,花一個小時在網上找教程,期間也少不了一番折騰
phpcms v9 301跳轉設置方法一:
僅支持Apache服務器設置
在根目錄下找到.htaccess文件,並將以下代碼寫入進去,保存上傳即設置成功,如下圖
1.jpg
代碼如下,直接複製後,更改域名即可
RewriteEngine on
RewriteCond %{HTTP_HOST} !^linchangbing.com$ [NC]
RewriteRule ^(.*)$ [L,R=301]
注意將上面的域名替換為你自己的域名哦,另外以上代碼是將www域名跳轉到不帶www的域名上,你如果的首選域名是帶www的,那麼在以上代碼加上www即可
phpcms v9 301跳轉設置方法二:(空間不支持偽靜態)
phpcms v9 301跳轉設置的另一種方法即是在根目錄下的index.php文件中設置,如下圖
1.png
代碼如下,直接複製後,更改域名即可
$the_host = $_SERVER[‘HTTP_HOST’];//取得當前域名
if(strtolower($the_host) != ”)//把這裡的域名換上你想要的
{ $URIRedirect=$_SERVER[‘REQUEST_URI’]; //獲取域名後的參數
if(strtolower($URIRedirect)==”/index.php”)//判斷是參數為/index.php就顯示為/
{
$URIRedirect=”/”;
}
header(“HTTP/1.1 301 Moved Permanently”);//發出301頭部
header(“Location: “.$URIRedirect);//跳轉到你希望的地址格式
exit();
}
“錯誤 310 (net::ERR_TOO_MANY_REDIRECTS):重定向過多。”問題
解決方法很簡單,即直接在後把把網站的緩存重新生成一下就行了
phpcms v9 設置301後,內頁轉向了動態鏈接
原因是方法一中的代碼放在了偽靜態規則後面
解決:把代碼放在偽靜態規則前面就可以了
IIS下利用偽靜態httpd.ini來實現301重定向
一、沒有在後台開啟偽靜態,使用的是靜態頁面或動態頁面
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^
RewriteRule (.*) [I,RP]
二、如果在網站後台開啟了偽靜態
編輯http.ini文件,在第4行 RepeatLimit 32 下新起一行(注意不要動下面的代碼),把下面這段複製粘貼到新起的那行:
RewriteCond Host: ^
RewriteRule (.*) [I,R]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/298054.html