Как бы я сделал условную замену на Apache mod_subsititute
В настоящее время я делаю mod_subsitute с mod_include (SSI), чтобы изменить вывод ответа в созданном мной прокси-сервере Google Fonts .
По большей части он работает хорошо, пока он на Traefik, но если я не на traefik, я хотел бы явно передать значение для замены.
Пока что код на https://github.com/trajano/google-fonts-proxy-docker/blob/master/httpd.conf#L573-L676 следует такому шаблону.
<Location "/css2">
Options +IncludesNOEXEC -FollowSymLinks -Indexes
CacheEnable disk
Header set Cache-Control max-age=31560000
Header unset Expires
Header unset Pragma
Header unset Accept-Encoding
Header unset Content-Security-Policy-Report-Only
Header unset Report-To
RequestHeader unset Accept-Encoding
RequestHeader unset X-forwarded-for
RequestHeader unset X-forwarded-host
RequestHeader unset X-forwarded-server
RequestHeader set Accept-Encoding identity
ProxyPreserveHost off
ProxyAddHeaders off
ProxyPass "https://fonts.googleapis.com/css2"
ProxyPassReverse "https://fonts.googleapis.com/css2"
Substitute 's|https://fonts.gstatic.com/s/|<!--#echo var="HTTP_X_FORWARDED_PROTO" -->://<!--#echo var="SERVER_NAME" -->:<!--#echo var="HTTP_X_FORWARDED_PORT" -->/s/|q'
FilterChain SUBS SSI Compress
</Location>
Я хотел бы сделать что-нибудь ложь
ProxyPassReverse "https://fonts.googleapis.com/css2"
Substitute 's|https://fonts.gstatic.com/s/|<!--#echo var="FIXED_REPLACEMENT" -->/s/|q'
# do the next one if FIXED_REPLACEMENT is not set
Substitute 's|https://fonts.gstatic.com/s/|<!--#echo var="HTTP_X_FORWARDED_PROTO" -->://<!--#echo var="SERVER_NAME" -->:<!--#echo var="HTTP_X_FORWARDED_PORT" -->/s/|q'
FilterChain SUBS SSI Compress