Mod_rewite - essas regras de reescrita funcionam?

1

Ajuda, por favor. Você pode me dizer se este é o código correto para executar as seguintes reescritas? Não posso testar essa alteração específica como gostaria.

Esta empresa possui quatro domínios em uma única instância do apache.

Eu só quero afetar um - test.example.com.

Eu preciso deste bloco para fazer o seguinte:

  1. se o host for test.example.com, qualquer chamada para / precisa ir para /admin/index.php
  2. se o host for test.example.com, qualquer chamada para http precisa ir para https
    
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteRule ^/admin/index\.php$ - [L]

    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /admin/index.php [L]

    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
        

Muito obrigada, Lynn

ATUALIZAÇÃO:

Que tal algo assim?

RewriteCond %{HTTP_HOST} !^test\.lifestylepubs\.com
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1
RewriteRule  ^/$ /admin/index.php
    
por Lynn Owens 15.04.2013 / 21:01

1 resposta

3

Se seu servidor apache atende 4 domínios, suponho que cada domínio esteja em seu próprio vhost. Se não, essa é a primeira coisa que eu resolveria.

Então você pode colocar sua regra de reescrita na configuração apropriada do vhost e não ter que se preocupar muito com isso.

Caso contrário, suas regras de regravação precisam apenas de:

RewriteCond %{SERVER_NAME}       =test.example.com
RewriteRule  ^/$                 /admin/index.php [L]

RewriteCond %{SERVER_NAME}       =test.example.com        
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1
    
por 15.04.2013 / 21:25