RewriteRule procuração mod_rewrite não está funcionando
-
05-07-2019 - |
Pergunta
Eu preciso enviar todas as solicitações para o diretório / home alphauser de backend / alphauser, mas não solicita aos arquivos dentro do diretório home / alphauser. Por exemplo:
http://home/alphauser -> http://backend/alphauser http://home/alphauser/ -> http://backend/alphauser http://home/alphauser/icon.png -> http://home/alphauser/icon.png http://home/alphauser/index.html -> http://home/alphauser/index.html
Eu criei um arquivo ".htaccess" na home / alphauser / diretório com o seguinte:
RewriteEngine on RewriteRule ^$ http://backend/alphauser [P]
mod_rewrite permite o acesso a arquivos dentro de casa / alphauser / diretório como esperado, mas quando o próprio diretório é solicitada com ou sem a barra:
http://home/alphauser http://home/alphauser/
.. o navegador (Firefox) apresenta um download pop-up arquivo que estados:
You have chosen to open a file which is a: httpd/unix-directory
O conteúdo do arquivo é o html adequada de backend / alphauser (que é o padrão de URL para um JSP) para que a carga retornada é correta. Parece que o Apache está enviando de volta este tipo mime estranha de "httpd / unix-diretório"
Ajuda!
Solução 2
Acontece que o problema não tinha nada a ver com mod_rewrite. Meu backend não estava enviando um cabeçalho ContentType em tudo. Uma vez que eu defini-lo para preencher o ContentType como text/html
tudo funcionou.
Outras dicas
Robert,
este parece ser estranho para mim
RewriteEngine on
RewriteRule ^$ http://backend/alphauser [P]
a expressão regular que você fez, basicamente, corresponde a nada justo enougth mas não iria passar o URI para o servidor.
RewriteEngine on
RewriteRule ^/alphauser/$ http://backend/alphauser [P]
ou
RewriteRule ^/$ http://backend/alphauser [P]
Não estou 100% certo como se comportar mod_rewrite em um arquivo .htaccess
Esta faria muito sentido que a minha opinião, você também tem que ter certeza que você tem mod_proxy
e mod_proxy_http
habilitado ou não vai funcionar.