Htaccess reescrever para arquivo localizado até um nível

1

Eu tenho um htaccess em um subdomínio com a seguinte regra:

RewriteEngine On
RewriteBase /
RewriteRule ^feed([0-9]+)$ ../image.php?id=$1 [L]

Então, basicamente, eu quero redirecionar as solicitações do feed que está localizado em um subdomínio para o arquivo image.php que está localizado no domínio principal (apenas um diretório acima). Usar ../ parece não funcionar como no PHP.

Então, como eu posso reescrever o arquivo no diretório pai?

    
por Michael Samuel 21.08.2017 / 15:22

1 resposta

2

Pelo que parece, você já está na raiz do documento do seu subdomínio, que provavelmente está definido em seu próprio host virtual (que aponta para um subdiretório da raiz do documento de domínios principais).

Infelizmente, você não pode reescrever internamente acima / fora da raiz do documento usando mod_rewrite em .htaccess . Em .htaccess , a RewriteRule substituição usa apenas um caminho de URL, não um caminho do sistema de arquivos. No entanto, você pode fazer isso se estiver usando mod_rewrite diretamente na configuração do servidor. Na configuração do servidor, você pode especificar um caminho do sistema de arquivos como a substituição (você precisaria incluir explicitamente o caminho completo, você não pode usar um caminho relativo como ../image.php ).

Como alternativa, em .htaccess você pode ser capaz de fazer proxy do pedido do seu subdomínio para o maindomain usando mod_proxy com mod_rewrite. No entanto, isso ainda pode exigir alguma configuração do servidor. Por exemplo:

RewriteRule ^feed([0-9]+)$ http://maindomain.com/image.php?id=$1 [P]
    
por 21.08.2017 / 16:45