簡體   English   中英

查詢字符串的 ProxyPassMatch 不起作用 apache

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM