[英]ProxyPassMatch for query string not working apache
我使用ProxyPassMatch
將主頁(主頁)代理到另一個設計不同的站點,它適用於這種情況。
我正在嘗試匹配,如果:
example.com/?q=fsds
存在於查詢字符串中,如果忽略它,但它不以任何方式工作。 任何想法?
配置:
ServerName https://a24dev.ga
DocumentRoot /home/bitrix/www
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerName off
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
# ProxyPreserveHost on
# ProxyPassMatch ^/?q= !
ProxyPassMatch ^/$ "https://product-qa.z.apteka24.ua"
您無法使用ProxyPassMatch
匹配查詢字符串參數,請參閱ProxyPassMatch with regex
另一方面,您應該能夠將該指令放在 LocationMatch 指令中,並在查詢字符串上使用條件:
<LocationMatch "^/$">
<If "%{QUERY_STRING} =~ /^q=/">
ProxyPassMatch ^/$ !
</If>
<Else>
ProxyPassMatch ^/$ "https://product-qa.z.apteka24.ua"
</Else>
</LocationMatch>
請注意, ProxyPassMatch
的第一個參數在LocationMatch
指令中使用時無關緊要,因為它將使用已經匹配的參數。
更新:似乎您不能在If
部分中使用ProxyPassMatch
,這很煩人,因此如果您啟用了mod_rewrite
,則必須改用帶有P
標志的 RewriteRules :
RewriteCond %{QUERY_STRING} !^q=$
RewriteRule ^$ "https://product-qa.z.apteka24.ua" [P]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.