Apache クエリ文字列の書き換えが機能しません。

Apache クエリ文字列の書き換えが機能しません。

プロキシを強化するには、クエリパラメータでドメイン名を再構築する必要があります。プロキシはデフォルトでドメインの書き換えですが、アップストリームサーバーの一部の応答には最終的にリダイレクトとして使用されるクエリパラメータ(「場所」ヘッダにあります)が含まれています。アップストリームサーバーの代わりにプロキシを指すようにこのドメイン名を再作成できる必要があります。私の現在の構成は次のとおりです。

<VirtualHost *:443>

SSLEngine On
SSLProxyEngine On
# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

# Servers to proxy the connection, or;
# List of application servers:
# Usage:
# ProxyPass / http://[IP Addr.]:[port]/
# ProxyPassReverse / http://[IP Addr.]:[port]/
# Example:

RewriteEngine On
LogLevel alert rewrite:trace6
RewriteCond %{QUERY_STRING} (.*)upstream\.com(.*)
RewriteRule (.*)upstream\.com(.*)  %1proxy.com%2 [N]

ProxyPass / https://upstream.com/
ProxyPassReverse / https://upstream.com/

</VirtualHost>

プロキシは正常に動作しますが、アップストリームサーバーが最初にすることは、2番目のリダイレクトのクエリパラメータを含むリダイレクトを送信することです。これにより、プロキシはトラフィック制御を失います。アップストリームサーバーの応答が原因でアップストリームサーバーの代わりにプロキシにリダイレクトされるように、このクエリ文字列を再構築する必要があります。

mod_rewriteが有効になり、「apachectl -t」は設定が正常であることを報告します。

答え1

a2enmod Rewrite端末に入力してApacheを再起動して、書き換えモジュールがオンになっていることを確認します。

また、仮想ホスト内のディレクトリブロックにAllowOverrideがあることを確認してください。

関連情報