Apache2.4 mod_rewrite não vai me redirecionar para subdir baseado no domínio visitante

1

Eu tenho um servidor Apache2.4 com o diretório público em /var/www/html . Nesse diretório eu tenho um site Wordpress com esse .htaccess :

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

No mesmo nível do site wp, há um subdir com uma API RESTful /var/www/html/api/

e uma página de destino temporária em /var/www/html/temp/

O que eu gostaria de alcançar é:

  • quando o usuário visita mydomain.com ou www.mydomain.com , ele deve ver a página de destino em temp como era a raiz

  • quando o usuário visita o servidor com IP simples, ele deve ver o wordpress blog (ou seja, xxx.xxx.xxx.xxx/ aparece como a raiz do blog) e deve acessar a API da mesma forma ( xxx.xxx.xxx.xxx/api/... )

Eu tentei muitas combinações em .htaccess como esta:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ temp [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

mas sem resultado. Alguma sugestão? Agradecemos antecipadamente.

    
por Cranio 29.03.2015 / 17:31

1 resposta

1

Primeiro, se você tiver acesso à configuração do servidor, não use o .htaccess, pois ele diminui o seu Apache . Além disso, é muito mais fácil lidar com isso com dois hosts virtuais separados.

1) /etc/apache2/sites-enabled/000-default (para IP e nomes de host não especificados):

<VirtualHost *:80>
        DocumentRoot /var/www/html
</VirtualHost>

2) /etc/apache2/sites-enabled/example.com para o seu exemplo.com e www.example.com.

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/html/temp
</VirtualHost>
    
por 29.03.2015 / 19:06