Mod-Rewrite
mod_rewrite、mod_alias、子域改變了域服務網站的方式?
我為一本雜誌製作了一個 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]