Já passei por todas as perguntas marcadas aqui e no SO, mas meu problema é diferente porque um/ambos precisam substituir " .
" por " _
" vem depois de um caminho específico e estou executando um arquivo proxypass
.
Estou tentando mudar:
http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some.machinename.com
para:
http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some_machinename_com
Código:
Opções +FollowSymLinks
Reescrever Motor Ligado
ProxyPreserveHost ativado
ProxyPass /grafana http://100.65.7.97:3000
ProxyPassReverse /grafana http://100.65.7.97:3000
Eu tentei muitas coisas depois de horas vasculhando serverfault/stackoverflow/webmasters.stackexchange/google etc. Mas nada que eu tente é redirecionar com sucesso. Não sei por quê.
Algumas das coisas que tentei (e variações delas):
RewriteRule ^([^\.]*)\ (.*)$ $1_$2 [E=%E2:yes,N]
RewriteCond %{ENV:%E2} yes
RewriteRule (.*) http://%{HTTP_HOST}$1 [R=301,L]
...
RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/]*?.[^/]*)$ $1_$2 [N]
RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/.]*)$ $1_$2 [R=301]
...
RewriteCond %{REQUEST_URI} ^(.*).(.*).(.*)/$
RewriteRule (.*).(.*).(.*)/ http://somedomainname.com/grafana/dashboard/db/$1_$2_$3/ [R=301]
...e muitos outros...
Isso poderia ser um problema porque eu também estou usando proxypass
? Talvez eu esteja apenas negligenciando algo simples? Qualquer ajuda é apreciada.
var-device=SF-some.machinename.com
faz parte doQUERY_STRING
, não doREQUEST_URI
. Sua última regra parece correta, exceto que você precisa escapar dos pontos.onde
%1
=var-device=SF-some
,%2
=machinename
e%3
=com
.