Alterar porta e host usando .htaccess

1

Estou tentando usar mod_rewrite para basicamente encaminhar uma porta em um subdomínio para outra porta em outro IP.

Assim:

sub.website.com:2000 --> 123.45.67.891:3000 

Como isso pode ser feito usando um arquivo .htaccess com mod_rewrite ?

Eu tentei o seguinte, mas sem sucesso:

RewriteCond %{HTTP_HOST} ^sub.website.com$ [NC]
RewriteCond %{SERVER_PORT} ^2000$
RewriteRule ^(.*)$ https://123.45.67.891:3000/$1 [L,R=302]
    
por Joshua 04.04.2013 / 17:44

2 respostas

0

Tente usar isso no seu .htaccess .

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^sub.website.com:2000 [NC]
RewriteRule (.*) https://123.45.67.891:3000/$1 [R=301,L]

Você também pode encontrar a resposta aceita aqui ( link ). R = 301 é usado para redirecionamento permanente. Se você deseja usar o redirecionamento temporário, use R = 302.

Se isso não ajudar, você pode tentar ativar o proxy no seu apache: (edite seu /etc/apache2/httpd.conf)

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyRequests Off

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

<VirtualHost sub.website.com:2000>
    ServerName  redirecting
    ServerAdmin [email protected]

    ProxyRequests off
    ProxyPass / http://123.45.67.891:3000
</VirtualHost>

(veja a solução publicada aqui encaminhamento de porta do Apache ).

    
por 04.04.2013 / 23:10
1

É difícil fazer isso com o RewriteRules em arquivos .htaccess. O problema é que os arquivos .htaccess só são lidos depois que o servidor passou pela fase de conversão de URL para nome do arquivo. Somente depois que um servidor chegou à conclusão (preliminar) de que o recurso que ele precisa servir existe em seu sistema de arquivos, ele começará a ler os arquivos .htaccess relevantes. Portanto, pode ser que o arquivo .htaccess não seja lido para essas solicitações. Ative o rewritelog para descobrir isso.

Você deve fazer isso na configuração principal do servidor.

    
por 06.04.2013 / 09:09