現在、Apacheでリバースプロキシを設定しようとしています。私は次の設定で行きました:
<VirtualHost *:80>
ServerName my-server
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPreserveHost on
ProxyRequests off
ProxyPass "/c/" "https://other.server.com/"
ProxyPassReverse "/c/" "https://other.server.com/"
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
私が遭遇した問題は、localhost:8080/c/slug/
に移動すると期待どおりに機能するのに、localhost:8080/c/slug
に移動すると、プロキシサーバーからコンテンツを取得する代わりにlocalhost:8080/slug
にリダイレクトされることです。 。
コールヘッダーを調べたところ、301: Moved permanently
が見つかりました。
一方、機能する呼び出しを検査している間は、すべて正常に表示されます。
私は次のアイデアを試しましたが、うまくいきませんでした。
書き換えルールの追加:
RewriteEngine on
RewriteRule "slug$" "slug/" [L,R=301]
アクセスしようとしているURLをスラッシュなしで明示的に入力します。
ProxyPass "/c/slug" "https://other.server.com/"
ProxyPassReverse "/c/slug" "https://other.server.com/"
ProxyRequests
のオンとオフも試しましたが、機能しませんでした。
どんな助けでも大歓迎です。
同様の問題がありましたが、私の場合、VirtualHostをHTTPからHTTPSを使用してVirtualHostにリダイレクトしていました。リダイレクトディレクティブでは、最後の/がありませんでした。 -)。
例:リダイレクト/ https:// localhost
そして私は次のように解決しました:リダイレクト/ https:// localhost/