apache 次層網域解析實現方法

來源:互聯網
上載者:User

複製代碼 代碼如下:RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1

其中的 /usr/local/etc/apache 是你的 apache 伺服器設定檔所在路徑,根據實際情況更改。
然後,在這個所在路徑的目錄下建立一個檔案: vhost.map
內容為: 複製代碼 代碼如下:www.domain.com /usr/local/www/data-dist/domain
bbs.domain.com /usr/local/www/data-dist/bbs
anyname.domain.com /usr/local/www/data-dist/anyname

以上部分都是:” 網域名稱+空格+絕對路徑” 的形式。

最後,在你的網站根目錄 /usr/local/www/data-dist 下,建立對應目錄:
domain , bbs , anyname 等等,理論上可以無限。

這樣,通過瀏覽器,訪問 www.domain.com 時,實際上訪問的就是 /usr/local/www/data-dist/domain目錄下的檔案。同理,訪問 bbs.domain.com 實際上訪問的就是 /usr/local/www/data-dist/bbs 目錄下的檔案。而且,你可以
隨時更改 vhost.map 來增加、刪除、修改你的次層網域和所指向的實際路徑,不用重啟 apache。

第一步:開啟apache的設定檔httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#號。
第二步:打設定檔尾部加上
RewriteEngine on
RewriteMap lowercase int:tolower
#定義映像檔案
RewriteMap vhost txt:/apache/vhost/vhost.map
#處理變名
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
這裡做基於檔案的重新對應
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1

注意:vhost.map檔案是網域名稱和空間映像的檔案,格式如下: 
http://www.abc.com/vhostusr/www.abc.com
http://www.xyz.com/vhostuser/www.xyz.com
http://www.cccbbbbs.net/vhostuser/www.ccbbbb.net
第三步:儲存設定檔,重啟apache。在開設可綁定網域名稱的空間時,只要在vhost.map檔案裡添加相應記錄,並建立相應檔案夾就OK了~~~
其實這個可以用php指令碼來完成的,很簡單的~~呵呵~~~
注意啊:php_admin_value open_basedir “path,這個選項要配好啊~~新手如果不懂的,就不要動這個了~
==============================================
方法二、

複製代碼 代碼如下:rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.網域名稱\.com$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.網域名稱\.com(.*) /$1$2

其他設定檔

接著在DNS中開設一個泛解析到對應的IP地址。
就可以實現下面的方案。

網域名稱:domain.com
絕對路徑:/home/domain.com/
www.domain.com 自動解析到 /home/domain.com/www/
abc.domain.com 自動解析到 /home/domain.com/abc/
等等子網域名稱都可以自動解析到 /home/domains.com/對應子網域名稱名稱的檔案夾
直接建立子網域名稱名稱的檔案夾即可使用。不需重啟apache。/vhostuser/www.ccbbbb.net/vhostuser/www.xyz.com/vhostusr/www.abc.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.