導航:首頁 > IDC知識 > apache不同域名跳轉

apache不同域名跳轉

發布時間:2020-12-28 13:45:43

1、懸賞100分求apache多域名綁定不同目錄

下面是apache 的文檔:

必須指定伺服器IP地址(和可能的埠)來使主機接受請求,這個可以用NameVirtualHost指令來進行配置。如果伺服器上所有的IP地址都會用到,你可以用"*"作為NameVirtualHost的參數。如果你打算使用多埠(如運行SSL)你必須在參數中指定一個埠號,比如"*:80"。請注意,在NameVirtualHost指令中指定IP地址並不會使伺服器自動偵聽那個IP地址。請參閱設置Apache使用的地址和埠一章獲取更多詳情。另外,這里設定的IP地址必須對應伺服器上的一個網路介面。

下一步就是為每個虛擬主機建立<VirtualHost>段。<VirtualHost>的參數與NameVirtualHost的參數必須是一樣的(比如說,一個IP地址或"*"代表的所有地址)。在每個<VirtualHost>段中,至少要有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容位於文件系統的什麼地方。

取消中心主機(Mainhost)
如果你想在現有的web伺服器上增加虛擬主機,你必須也為現存的主機建造一個<VirtualHost>定義塊。這個虛擬主機中ServerName和DocumentRoot所包含的內容應該與全局的ServerName和DocumentRoot保持一致。還要把這個虛擬主機放在配置文件的最前面,來讓它扮演默認主機的角色。

比如說,假設你正在為域名www.domain.tld提供服務,而你又想在同一個IP地址上增加一個名叫www.otherdomain.tld的虛擬主機,你只需在httpd.conf中加入以下內容:

NameVirtualHost *:80

<VirtualHost *:80>

ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain

</VirtualHost>

<VirtualHost *:80>

ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain

</VirtualHost>

當然,你可以用一個固定的IP地址來代替NameVirtualHost和<VirtualHost>指令中的"*"號,以達到一些特定的目的。比如說,你可能會希望在一個IP地址上運行一個基於域名的虛擬主機,而在另外一個IP地址上運行一個基於IP的或是另外一套基於域名的虛擬主機。

很多伺服器希望自己能通過不只一個域名被訪問。我們可以把ServerAlias指令放入<VirtualHost>小節中來解決這個問題。比如說在上面的第一個<VirtualHost>配置段中ServerAlias指令中列出的名字就是用戶可以用來訪問同一個web站點的其它名字:

ServerAlias domain.tld *.domain.tld

這樣,所有對域domain.tld的訪問請求都將由虛擬主機www.domain.tld處理。通配符標記"*"和"?"可以用於域名的匹配。當然你不能僅僅搞個名字然後把它放到ServerName或ServerAlias里就算完了。你必須先在你的DNS伺服器上進行配置,將這些名字和您伺服器上的一個IP地址建立映射關系。

最後,你可以把其他一些指令放入<VirtualHost>段中,以更好的配置一個虛擬主機。大部分指令都可以放入這些<VirtualHost>段中以改變相應虛擬主機配置。如果您想了解一個特定的指令是否可以這樣運用,請參見指令的作用域。主伺服器(main server)范圍內的配置指令(在所有<VirtualHost>配置段之外的指令)僅在它們沒有被虛擬主機的配置覆蓋時才起作用。

這樣,當一個請求到達的時候,伺服器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果能夠匹配,它就會查找每個與這個IP地址相對應的<VirtualHost>段,並嘗試找出一個與請求的主機名相同的ServerName或ServerAlias配置項。如果找到了,它就會使用這個伺服器。否則,將使用符合這個IP地址的第一個列出的虛擬主機。

綜上所述,第一個列出的虛擬主機充當了默認虛擬主機的角色。當一個IP地址與NameVirtualHost指令中的配置相符的時候,主伺服器中的DocumentRoot將永遠不會被用到。所以,如果你想創建一段特殊的配置用於處理不對應任何一個虛擬主機的請求的話,你只要簡單的把這段配置放到<VirtualHost>段中,並把它放到配置文件的最前面就可以了。

認真讀完的話,你就知道怎麼做了

希望對你有幫助

2、一台伺服器搭建兩個不同域名的網站如何配置apache

最簡單高效的方法如下:
1. 先打開Apache的配置文件httpd.conf,在這個文件,
找到這句:「#Include etc/extra/httpd-vhosts.conf」
(根據安裝路徑不同,上面的路徑會略有不同)
把前面的#去掉,即開啟了使用虛擬主機的功能;
2. 在httpd-vhosts.conf中進行虛擬主機的配置操作;也可以在httpd.conf直接寫入配置,但是
不建議這么做;
3. 打開httpd-vhosts.conf文件,找到NameVirutalHost *:80,這句話的含義是制定這個主機的
IP地址和埠號;
4. 關鍵的virtualhost配置,在NameVirutalHost *:80的下面;
注意事項:Apache在接受請求時,首先會默認第一個VirtualHost,然後再匹配其他虛擬主
機,如果沒有匹配的,就是第一個VirtualHost起作用。故,在httpd.conf中,將
<Dicrectory />(這個是所有目錄的默認配置)和<Direcotry/opt/lampp/htdocs>的許可權,
都默認設置為deny from all。
5. virtualhost配置實例:
<VirtualHost*:80>
ServerName *
DocumentRoot </opt/lampp/htdocs/guest>
<Directory /opt/lamp

3、apache解析兩個域名訪問同一個項目的不同頁面

ServerName 你第一個域名RewriteEngine OnRewriteRule index.htm 你第一個需要訪問的頁面</VirtualHost<VirtualHost *:80DocumentRoot "你網站存放的路徑"ServerName 你第二個域名RewriteEngine OnRewriteRule index2.htm 你第二個需要訪問的頁面

4、Linux,apache,埠已經監聽,同一個域名,不同埠對應不同目錄,為什麼訪問8080時,總是跳轉到 80 ?

根據匹配順序來的,如www.aaa.cn先匹配到 那就是 80 埠,如果 先匹配到 test.aaa.cn 那就是8080.。 你可以試試改變一下上下順序。

而且你這個配置挺奇怪的,Apache 一般運行在 80 埠的啊。 8080 是 tomcat下的。 可以通過整合Apache+Tomcat的模式進行配置。

5、求助,Apache上放多個域名卻自動跳轉到同一個網站

echo "NameVirtualHost *:80">>/etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart

6、apache配置不同域名訪問同一個網站的不同頁面

?

與apache不同域名跳轉相關的知識