Я сделал сайт django для журнала, и он находится на mag.org/django-site. старый сайт по-прежнему находится по адресу mag.org/httpdocs (размещен на mediatemple).
Я бы хотел, чтобы обращение к www.mag.org открывало сайт django (как в настоящее время, настроено таким образом в файле conf), в то время как обращение к archive.mag.org обслуживает старый сайт из httpdocs, что есть, он обслуживается apache, а не mod_python.
Можно ли это сделать через мод-перезапись или мод-псевдоним?
организовано 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 указывает на сайт django, обслуживаемый mod-python, а archive.mag.org указывает на папку httpdocs, обслуживаемую apache.
(Я изначально разместил это в stack-overflow, но я думаю, что он больше подходит для serverfault.)
В файле vhost.conf вы можете сделать следующее:
ServerAdmin webmasta@localhost.com
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 загружает настраиваемую конфигурацию виртуального хоста, ему не нужны теги VirtualHost, поскольку они уже загружены в конфигурации VH по умолчанию.
Не забудьте перезапустить сервер и перенастроить домен, проверьте, какие параметры доступны в диспетчере серверов, в терминале введите следующее:
$ /usr/local/psa/admin/sbin/websrvmng --help
Обычно вам придется перенастроить vhost
После этого перезапустите apache
$ /etc/init.d/httpd graceful
Это должно сработать.
Лучший способ сделать это - использовать два виртуальных хоста, один для 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]