Mod-Rewrite

mod_rewrite、mod_alias、子域改變了域服務網站的方式?

  • November 19, 2012

我為一本雜誌製作了一個 django 站點,它可以在 mag.org/django-site 中找到。舊站點仍位於 mag.org/httpdocs(由 mediatemple 託管)。

我希望這樣,對 www.mag.org 的點擊會打開 django 站點(目前是這種情況,在 conf 文件中進行了配置),而對 archive.mag.org 的點擊會從 httpdocs 為舊站點提供服務,即是,它由 apache 而不是 mod_python 提供。

這可以通過 mod-rewrite 或 mod-alias 來實現嗎?

  • 由 mediatemple dv 主辦。httpd.conf 被 plesk 重寫;httpd.conf 訪問僅限於每個域/子域的單個 vhost.conf。
  • 一個簡單的

$$ DocumentRoot /var/www/vhosts/mag.org/httpdocs $$在裡面$$ /mag.org/subdomains/archive/conf/vhost.conf $$是我所需要的。

  • 現在 mag.org 指向由 mod-python 提供服務的 django 站點,而 archive.mag.org 指向由 apache 提供服務的 httpdocs 文件夾。

(我最初在 stack-overflow 上發布了這個,但我認為它更適合伺服器故障。)

最好的方法是使用兩台虛擬主機,一台用於 www.mag.org,一台用於 archive.mag.org

<VirtualHost *:80>
   ServerName www.mag.org
   DocumentRoot /path/to/django-site
</VirtualHost>

<VirtualHost *:80>
   ServerName archive.mag.org
   DocumentRoot /path/to/httpdocs
</VirtualHost>

這個關於虛擬主機和別名的答案可能對您有所幫助。


編輯:mod_rewrite如果您確實需要,可以使用 來執行此操作。如果你有mod_proxy,你也可以代理重寫,這樣使用者地址欄中的地址就不會改變。

DocumentRoot  /path/to/django-site
Alias         /archive/                    "/path/to/httpdocs/"
RewriteRule   ^archive\.mag\.org(.*)$      http://www.mag.org/archive$1 [NC,P,L]

引用自:https://serverfault.com/questions/44279