.htaccess é aplicado ao domínio errado

2

Eu configurei meu apache assim:

<VirtualHost *:80>
  ServerName www.th3falc0n.de
  ServerAlias th3falc0n.de *.th3falc0n.de
  DocumentRoot /var/www/html/th3falc0n

    <Directory /var/www/html/th3falc0n>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

<VirtualHost *:80>
  ServerName www.lolhens.org
  ServerAlias lolhens.org *.lolhens.org
  DocumentRoot /var/www/html/lolhens

    <Directory /var/www/html/lolhens>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

Eu tenho um .htaccess em / var / www / html / th3falc0n que redireciona th3falc0n.de para th3falc0n.de/p/home e algumas outras coisas. No entanto, essas regras também são aplicadas ao lolhens.org, que não é o comportamento esperado. O que é minha culpa? Como posso conseguir que o .htaccess só se aplique a th3falc0n.de?

Saída do apache2ctl -S

root@v36448:~# apache2ctl -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server www.th3falc0n.de (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost www.th3falc0n.de (/etc/apache2/sites-enabled/000-default.conf:1)
                 alias th3falc0n.de
                 wild alias *.th3falc0n.de
         port 80 namevhost www.lolhens.org (/etc/apache2/sites-enabled/000-default.conf:15)
                 alias lolhens.org
                 wild alias *.lolhens.org
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Como recebi várias sugestões para mover o conteúdo do .htaccess para a configuração do site: Esta não é uma opção, pois o usuário que gerencia o lolhens.org não deve ter acesso à configuração do servidor, mas pode usar o .htaccess e eu quero para manter isso consistente em todos os possíveis usuários.

EDITAR:

Depois de descobrir, o link não tem o problema com .htaccess, mas isso ocorrerá em link Eu tentei outra configuração assim:

<VirtualHost *:80>
  ServerName th3falc0n.de
  ServerAlias *.th3falc0n.de
  DocumentRoot /var/www/html/th3falc0n

    <Directory /var/www/html/th3falc0n>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

<VirtualHost *:80>
  ServerName lolhens.org
  ServerAlias *.lolhens.org
  DocumentRoot /var/www/html/lolhens

    <Directory /var/www/html/lolhens>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

Isso, no entanto, ainda tem o mesmo resultado. www.lolhens.org funciona como esperado, lolhens.org não.

    
por th3falc0n 21.03.2015 / 13:18

2 respostas

0

Acabei de descobrir que a falha era o cache do meu navegador local, que salvou o redirecionamento para o lolhens.org. A segunda configuração agora funciona.

    
por 22.03.2015 / 15:28
1

Se qualquer conteúdo do www.lolhens.org for exibido em / var / www / html / th3falc0n, o arquivo .htaccess será honrado, mesmo que o usuário tenha solicitado um domínio diferente.

Iain está certo: como aparentemente você tem acesso aos arquivos de configuração, a solução mais simples é remover o arquivo .htaccess, mover suas diretivas para o VirtualHost para www.th3falc0n.de e desativar o .htaccess definindo AllowOverride none . Veja o tutorial sobre o arquivo Apache htaccess .

    
por 21.03.2015 / 13:48