Redirecionar subdomínio para subdomínio Apache2

2

Digamos que eu tenha um servidor web com endereço IP: 1.2.3.4.

Eu também tenho 2 subdomínios:

 sth.city.eu
 inf.xyz.city.eu

Estou usando o apache 2 no Ubuntu Server. Aqui está o meu arquivo /etc/apache2/sites-enabled/site :

<VirtualHost *:80>
    ServerName www.sth.city.eu
    ServerAlias sth.city.eu
    ServerAlias inf.xyz.city.eu
    ServerAlias www.inf.xyz.city.eu
    ServerAdmin webmaster@localhost

DocumentRoot /var/www/city/

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory /var/www/city/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/error_city.log
    CustomLog ${APACHE_LOG_DIR}/access_city.log combined
</VirtualHost>

Eu gostaria de fazer algo assim: se alguém for para inf.xyz.city.eu , o servidor deve redirecioná-lo automaticamente para sth.city.eu (alterar o URL). Isso é possível - como posso fazer isso? Eu pesquisei no google e encontrei Redirect , tentei usá-lo assim:

Redirect http://inf.xyz.city.eu http://www.sth.city.eu

Mas isso não funcionou.

    
por mazix 29.01.2015 / 16:15

3 respostas

3

Eu acredito que você pode resolver isso configurando 2 vhosts:

<VirtualHost *:80>
    ServerName inf.xyz.city.eu
    ServerAlias www.inf.xyz.city.eu
    Redirect / http://sth.city.eu/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.sth.city.eu
    ServerAlias sth.city.eu
    ServerAdmin webmaster@localhost      
    [...]
</VirtualHost>
    
por 29.01.2015 / 16:40
1

Se você tiver mod_rewrite, você pode usar RewriteRules:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^inf\.xyz\.city\.eu [NC]
RewriteRule (.*) http://sth.city.eu/$1 [R=301,QSA,L]
    
por 30.01.2015 / 17:30
1

O que @mikolan estava dizendo é:

em /etc/apache2/sites-enabled/ , você deve ter 2% de arquivosvhost:

  1. arquivo: /etc/apache2/sites-enabled/sth.city.eu
<VirtualHost *:80>
    ServerName sth.city.eu
    ServerAlias www.sth.city.eu
    ServerAdmin webmaster@localhost      

    DocumentRoot /var/www/city/

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /var/www/city/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/sth.city.eu.error.log
    CustomLog ${APACHE_LOG_DIR}/sth.city.eu.access.log combined
</VirtualHost>
  1. arquivo: /etc/apache2/sites-enabled/inf.xyz.city.eu
<VirtualHost *:80>
  ServerName inf.xyz.city.eu
  ServerAlias www.inf.xyz.city.eu
  Redirect / http://sth.city.eu/

  LogLevel warn
  ErrorLog ${APACHE_LOG_DIR}/inf.xyz.city.eu.error.log
  CustomLog ${APACHE_LOG_DIR}/inf.xyz.city.eu.access.log combined

</VirtualHost>

Naturalmente, os dois arquivos são criados em /etc/apache2/sites-available e são ativados com

sudo a2ensite inf.xyz.city.eu
sudo a2ensite sth.city.eu
sudo service apache2 restart
  • Toda vez que você ativar / desativar site / módulo, um reload é suficiente, mas durante o teste, restart é mais seguro ( paz mental )

  • Verifique se o mod_alias está ativado (deve ser por padrão)

  • Verifique os registros para ver quais erros você recebe: permissões insuficientes, você nem recebe as solicitações?
por 03.02.2015 / 20:24