我对动态内容替换有疑问。Apache-Substitude 不会替换由 LocationMatch 或请求变量(如 %{REQUEST_URI})匹配的变量。
我的计划是代理一个页面并替换 base-href-content。
href="/" -> href="/proxy/https/my-app.de/"
典型的请求如下所示: https://my-proxy.localhost/proxy/https/my-app.de/
我尝试了许多拼写来访问这些变量。我尝试了使用正则表达式和没有 LocationMatch 的替换。我寻找替代品的替代品。
<LocationMatch "/proxy/(?<protocol>https?)/(?<target>.*)">
RequestHeader unset Accept-Encoding
RewriteEngine on
RewriteOptions Inherit
RewriteRule ^ %{env:MATCH_PROTOCOL}://%{env:MATCH_TARGET} [P]
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|<base href=\"/\" />|<base href=\"/proxy/%{env:MATCH_PROTOCOL}/%{env:MATCH_TARGET}/\" debug=\"%{REQUEST_URI} %\{env:PROTOCOL} %{env:TARGET} \$\\PROTOCOL %{HTTP:HOST}\" />|"
</LocationMatch>
结果是,没有任何帮助
<base href="/proxy/{env:MATCH_PROTOCOL}/%{env:MATCH_TARGET}/" debug="%{REQUEST_URI} %{env:PROTOCOL} %{env:TARGET} $PROTOCOL %{HTTP:HOST}" />