2017-02-13 4 views
1

私は、外部カスタムURLにリダイレクトするために、nginx configで次の指示文を使用しました。error_pageを外部URLにリダイレクトする方法Nginxに対応するスキームが添付されていますか?

<location block> 
    : 
    allow 123.123.123.123; 
    deny all; 
    error_page 403 http://domain.com/unauthorized.html; 
    : 
</location block> 

それは働いているが、私は、元の要求がhttpsスキームを使用している場合httpsバージョン対応へのリダイレクトをしたいと思い。

私のnginxのサーバーのブロックが、私は成功せず、次の試してみましたが、ポート80と443

server { 
    listen 80; 
    listen 443 ssl http2; 
     : 
     : 
} 

の両方の設定を共有している

error_page 403 /unauthorized.html;は私の元のリクエストURLパスを持つカスタムページコンテンツを与えますhttps(これは表示しないようにしたい)

error_page 403 //domain.com/unauthorized.html;私にデフォルトの404 Not Foundエラーページhttpsを与え、アドレスバーの元のリクエストURLパスを明らかにします。

は私がしたい:http(s)://domain.com/admin/admin.php -> http(s)://domain.com/unauthorized.html

どのようにこの冗長サーバブロックの宣言をすることなく行うことができますか?

+0

'$ scheme:// domain.com/unauthorized.html'を試したことがあります –

+0

完璧に動作し、問題を直ちに解決しました。私はそれを受け入れることを嬉しく思うでしょう。 – KDX

答えて

0

変数httpまたはhttpsは、要求に使用されるプロトコルに応じて、httpに設定されます。

allow 123.123.123.123; 
deny all; 
error_page 403 $scheme://domain.com/unauthorized.html; 

詳細については、this documentを参照してください。

関連する問題