Para casos simples, você não precisa usar mod_rewrite
.
Pode ser suficiente usar mod_proxy ; algo como:
ProxyPass / http://subdomain.example.com:32400/web
ProxyPassReverse / http://subdomain.example.com:32400/web
(não testado)
Eu preciso redirecionar subdominio.example.com - > subdominio.exemplo.com:32400/web
Meu htaccess atual é:
Options -MultiViews +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.example.com [NC]
RewriteRule (.*) http://subdomain.example.com:32400/web [R=301,L]
AuthUserFile /var/.htpasswd
AuthName Welcome
AuthType Basic
require user someone
IndexOptions +ShowForbidden
ErrorDocument 401 /error401.html
ErrorDocument 404 /errorGeneric.html
ErrorDocument 500 /errorGeneric.html
No entanto, recebo 500 erros do Servidor Interno com o redirecionamento ativado, se o redirecionamento não estiver ativo, então o .htaccess funciona bem
Para casos simples, você não precisa usar mod_rewrite
.
Pode ser suficiente usar mod_proxy ; algo como:
ProxyPass / http://subdomain.example.com:32400/web
ProxyPassReverse / http://subdomain.example.com:32400/web
(não testado)
Você tentou a diretiva RewriteLog
, com RewriteLogLevel
algo acima de 0
?
É possível que você tenha um impasse de reescrita? qual serviço é executado na porta 32400
?
Editar: A disponibilidade de RewriteLog
depende da versão do Apache; para o Apache 2.4+, as regras da diretiva LogLevel
regravam o registro também (consulte a documentação do LogLevel ), por exemplo LogLevel rewrite:trace4
Se os documentos de erro precisarem ser atendidos pelo Apache, e não pelo processo do servidor de back-end (que atende à porta 32400), é necessário protegê-los de serem reescritos; por exemplo:
RewriteCond !^/error(401|Generic).html
antes de seu RewriteRule
(você pode encadear 1 para n condições que precisarão ser atendidas para o seguinte RewriteRule
a ser executado).