ProxyHTMLURLMap は 2 回指定された URL を置き換えます

ProxyHTMLURLMap は 2 回指定された URL を置き換えます

タイトルを説明するために、私はこれを(これが唯一の htmlUrlMap です)conf に追加しました。

ProxyHTMLURLMap / /rp/ticket/

そして私の HTML では次のようになります:

<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>

予想されていたこと:

<script type="text/javascript" src="/rp/ticket/js/jquery-1.8.3.min.js"></script> 

実際の出力:

<script type="text/javascript" src="/rp/ticket/rp/ticket/js/jquery-1.8.3.min.js"></script> 

奇妙ですね...、設定の詳細:

<Location /rp/ticket/>
    ProxyHTMLEnable On

    ProxyHTMLBufSize  102400
    ProxyHTMLExtended On
    ProxyHTMLStripComments Off
    ProxyHTMLDocType "<!DOCTYPE html>"
    ProxyHTMLMeta Off
    ProxyHTMLCharsetOut *
    ProxyHTMLURLMap / /rp/ticket/
    ProxyPass http://ticket.domain.com/
    ProxyPassReverse http://domain.com/

    SetOutputFilter INFLATE;proxy-html;DEFLATE
    RequestHeader    unset  Accept-Encoding
</Location>

私の推測では、<location>が問題の原因であり、それが私のカスタムアドレスに追加されているのですが、アドレスを別のもの(「/rp/test」)に変更した後、

src="/rp/ticket/rp/test"

私は

src="/rp/test/rp/test"

それは問題ではない

WindowsServer 2008 (x64) に Apache/2.4.3 (Win32)、OpenSSL/1.0.1c、PHP/5.4.7 をインストールしました。Xampp (xampp-win32-1.8.1-VC9.zip) とともに Apache をインストールしました。

設定を間違えたか、明らかな間違いを犯した可能性が高いのですが、2日経っても修正できませんでした。どなたか助けていただければ幸いです。

- - - - -編集:

どうやらこれがどのように機能するか全く理解していなかったようです。修正されたソースを見ると、JavaScriptのコメントがありました

// What's the page height?

次のように変更されました:

/rp/ticket/rp/rp/ticket/ticket/rp/ticket//rp/ticket/rp/rp/ticket/ticket/rp/ticket/ What's the page height?

答え1

結局、mod_proxy_html をまったく使用しませんでした。誰にも使用を勧めません...

その他の解決策:

1.substitute_moduleを有効にする(httpd.confの次の行のコメントを解除する)

LoadModule substitute_module modules/mod_substitute.so

2. 必要なものを変更するための正規表現を作成します。私の場合は次のようになります。

Substitute "s|\"/|/rp/ticket/|iq"

3.出力フィルターにSUBSTITUTEを追加する

SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE

終わり。

関連情報