Назад | Перейти на главную страницу

mod_rewrite, mod_alias, subdomain меняет способ обслуживания сайта доменом?

Я сделал сайт django для журнала, и он находится на mag.org/django-site. старый сайт по-прежнему находится по адресу mag.org/httpdocs (размещен на mediatemple).

Я бы хотел, чтобы обращение к www.mag.org открывало сайт django (как в настоящее время, настроено таким образом в файле conf), в то время как обращение к archive.mag.org обслуживает старый сайт из httpdocs, что есть, он обслуживается apache, а не mod_python.

Можно ли это сделать через мод-перезапись или мод-псевдоним?

(Я изначально разместил это в 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]