PHP 根據不同的網域名稱顯示不同頁面

2021-09-24 23:58:22 字數 3176 閱讀 9509

$domain_route = array(

'www.phpurl1.com' => 'a.php',

'www.phpurl2.com' => 'b.php',

); $domain = $_server['server_name'];

$target_url = $domain_route[$domain];

header("location:");

現要增加乙個二級網域名稱bb.abc.com也指向www.abc.com伺服器,並將網域名稱後路徑改為和www.abc.com形式相同,即

---> ./filedir/bb.php

/late/ ---> ./filedir/bblate.php?p=1

這要如何寫.htaccess的url重寫規則呢?根據判斷網域名稱顯示不同內容

方法:rewritecond % ^bb.abc.com$

rewriterule ^(/)?$ ./filedir/bb.php [l]

rewritecond % ^bb.abc.com$

rewriterule ^late/$ ./filedir/bblate.php?p=1 [l]

來自:

其實這裡的%和《php 超級全域性變數》【$_server】的http_host 一樣;

下表列出了所有 $_server 變數中的重要元素:

元素/**

描述$_server['php_self']

當前執行指令碼的檔名,與 document root 有關。例如,在位址為 的指令碼中使用 $_server['php_self'] 將得到 /test.php/foo.bar。__file__ 常量包含當前(例如包含)檔案的完整路徑和檔名。 從 php 4.3.0 版本開始,如果 php 以命令列模式執行,這個變數將包含指令碼名。之前的版本該變數不可用。

$_server['gateway_inte***ce']

伺服器使用的 cgi 規範的版本;例如,"cgi/1.1"。

$_server['server_addr']

當前執行指令碼所在的伺服器的 ip 位址。

$_server['server_name']

當前執行指令碼所在的伺服器的主機名。如果指令碼執行於虛擬主機中,該名稱是由那個虛擬主機所設定的值決定。(如: www.runoob.com)

$_server['server_software']

伺服器標識字串,在響應請求時的頭資訊中給出。 (如:apache/2.2.24)

$_server['server_protocol']

請求頁面時通訊協議的名稱和版本。例如,"http/1.0"。

$_server['request_method']

訪問頁面使用的請求方法;例如,"get", "head","post","put"。

$_server['request_time']

請求開始時的時間戳。從 php 5.1.0 起可用。 (如:1377687496)

$_server['query_string']

query string(查詢字串),如果有的話,通過它進行頁面訪問。

當前請求頭中 accept: 項的內容,如果存在的話。

當前請求頭中 accept-charset: 項的內容,如果存在的話。例如:"iso-8859-1,*,utf-8"。

當前請求頭中 host: 項的內容,如果存在的話。

引導使用者**到當前頁的前一頁的位址(如果存在)。由 user agent 設定決定。並不是所有的使用者**都會設定該項,有的還提供了修改 http_referer 的功能。簡言之,該值並不可信。)

如果指令碼是通過 https 協議被訪問,則被設為乙個非空的值。

$_server['remote_addr']

瀏覽當前頁面的使用者的 ip 位址。

$_server['remote_host']

瀏覽當前頁面的使用者的主機名。dns 反向解析不依賴於使用者的 remote_addr。

$_server['remote_port']

使用者機器上連線到 web 伺服器所使用的埠號。

$_server['script_filename']

當前執行指令碼的絕對路徑。

$_server['server_admin']

該值指明了 apache 伺服器配置檔案中的 server_admin 引數。如果指令碼執行在乙個虛擬主機上,則該值是那個虛擬主機的值。(如:[email protected])

$_server['server_port']

web 伺服器使用的埠。預設值為 "80"。如果使用 ssl 安全連線,則這個值為使用者設定的 http 埠。

$_server['server_signature']

包含了伺服器版本和虛擬主機名的字串。

$_server['path_translated']

當前指令碼所在檔案系統(非文件根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。

$_server['script_name']

包含當前指令碼的路徑。這在頁面需要指向自己時非常有用。__file__ 常量包含當前指令碼(例如包含檔案)的完整路徑和檔名。

$_server['script_uri']

uri 用來指定要訪問的頁面。例如 "/index.html"。

來自:如果你需要更深入的了解請看下面的文章

.htaccess檔案

rewriteengine on 

rewritecond % ^www.phpurl1.com$

rewriterule ^(/)?$ a.php [l]

rewritecond % ^www.phpurl2.com$

rewriterule ^(/)?$ ./b/b.php [l]

ecshop通過不同網域名稱訪問顯示不同模板的方法

應使用者需求共用同一套ecshop資料,後台繫結多個網域名稱,且每個網域名稱對應顯示不同模板。實現思路,ecshop採用smarty模板引擎,修改他的編譯目錄和快取目錄就可以實現ecshop不同網域名稱展示不同模板功能 廢話少說,修改如下。一 在init.php大概117行 cfg load con...

Nginx根據網域名稱分發不同埠

原文首發於 本文出自 rebornchang的部落格 博主有買了兩個網域名稱,但是只購買了乙個主機,主機只有乙個80埠,但是又不想訪問的時候帶埠訪問,所以就想著通過不同的網域名稱請求訪問不同的埠。在乙個主機上部署了兩個服務例項,分別是81,82埠。網域名稱經過dns解析之後訪問的是指定伺服器ip的8...

iPhone上根據不同的國家顯示廣告

本段教程和 例子由 cocoachina 會員 巫山冰 分享,可以自動識別 iphone 所在地區,如果是美 日 英 法 德等支援 iad 廣告的國家,顯示 iad 廣告 其它地區則顯示 admob 廣告。部署廣告函式 本函式在viewdidload 中呼叫,同時也可以在購買 廣告去除 成功後呼叫 ...