我为一本杂志做了一个django网站,在mag.org/django-sitefind它。 旧网站仍然位于mag.org/httpdocs(由mediatemple托pipe)。
我希望它能够打到www.mag.org,打开django站点(就像目前的情况一样,在conf文件中configuration),而archive.mag.org命中则为httpdocs服务旧站点,是,它是由Apache而不是mod_python。
这是可能通过mod重写,或mod别名?
由mediatemple dv主持。 httpd.conf被plesk重写; 对于每个域/子域,httpd.conf访问仅限于单个vhost.conf。
我只需要[/mag.org/subdomains/archive/conf/vhost.conf]中的一个简单的[DocumentRoot /var/www/vhosts/mag.org/httpdocs]。
现在mag.org指向由mod-python提供的django站点,而archive.mag.org指向由apache提供服务的httpdocs文件夹。
(我最初发布这个堆栈溢出,但我认为它更适合于serverfault。)
最好的方法是使用两个虚拟主机,一个用于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]
您可以在vhost.conf文件中执行以下操作:
ServerAdmin [email protected] ServerName a server name ServerAlias a server alias DocumentRoot /path-to-django-web/root <Directory /path-to-django-web/root > Options FollowSymLinks Indexes DirectoryIndex index.php index.html AllowOverride All Order allow,deny Allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / #Do your rewrite magic here </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> </Directory>
这就是MT DV的虚拟主机加载自定义虚拟主机configuration的方式,它不需要VirtualHost标签,因为它们已经被默认的VHconfiguration加载。
请记住重新启动您的服务器并重新configuration您的域,检查您的服务器pipe理器上可用的选项,在terminal中键入以下内容:
$ /usr/local/psa/admin/sbin/websrvmng --help
通常你将不得不重新configuration虚拟主机
之后,重新启动Apache
$ /etc/init.d/httpd graceful
这应该做到这一点。