mod_rewrite, mod_alias, subdomain muda como o domínio serve o site?

2

Eu fiz um site de django para uma revista, e é encontrado em mag.org/django-site. o site antigo ainda está em mag.org/httpdocs (hospedado por mediatemple).

Eu gostaria que o hit do site www.mag.org viesse no site do django (como é atualmente o caso, configurado no arquivo conf) enquanto um hit para o archive.mag.org serve o site antigo de httpdocs, isto é, é servido pelo apache e não pelo mod_python.

Isso é possível através de mod-rewrite ou mod-alias?

  • hospedado pelo mediatemple dv. httpd.conf é reescrito pelo plesk; O acesso httpd.conf é limitado a um único vhost.conf para cada domínio / subdomínio.

  • um simples [DocumentRoot /var/www/vhosts/mag.org/httpdocs] no [/mag.org/subdomains/archive/conf/vhost.conf] era tudo que eu precisava.

  • agora o mag.org aponta para o site do django sendo servido por mod-python, enquanto o archive.mag.org aponta para a pasta httpdocs, servida pelo apache.

(Inicialmente postei isso no estouro de pilha, mas acho que é mais adequado para o serverfault.)

    
por Cody Django 22.07.2009 / 22:51

2 respostas

1

A melhor maneira de fazer isso é com dois hosts virtuais, um para www.mag.org e outro para 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>

Esta resposta em virtualhosts e aliases pode ser útil para você.

Editar: É possível fazer isso com mod_rewrite , se você realmente precisar. Se você tiver mod_proxy , também poderá fazer proxy para reescrever para que o endereço não seja alterado na barra de endereço do usuário.

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

Você pode fazer o seguinte no seu arquivo 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>

Essa é a maneira que o vhost do MT DV carrega a configuração personalizada do vhost, ele não precisa das tags do VirtualHost, já que elas já estão carregadas pela configuração VH padrão.

Lembre-se de reiniciar seu servidor e reconfigurar seu domínio, verifique quais são as opções disponíveis em seu gerenciador de servidor, no terminal digite o seguinte:

$ /usr/local/psa/admin/sbin/websrvmng --help

Normalmente você terá que reconfigurar o vhost

Depois disso reinicie o apache

$ /etc/init.d/httpd graceful

Isso deve ser feito.

    
por 19.11.2012 / 21:59