2

PythonフラスコWebアプリをfluxflexクラウドホスティング(Apache、FastCGI)でホストしました。したがって、.htaccessファイルは次のようになります。

RewriteEngine On
AddHandler fcgid-script .fcgi
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /dispatch.fcgi/$1 [QSA,L]

できます。ここで、httpからhttpsにリダイレクトしたいと思います。どうやってやるの?.htaccessの最後に次の2行を追加しました。

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

しかし、応答がありました:エラー310(net :: ERR_TOO_MANY_REDIRECTS)。最初の書き換えの前にこの2行を挿入すると、応答は次のようになります。ページが見つかりません。

誰かがhttpsにリダイレクトする適切な方法を教えてもらえますか?

4

2 に答える 2

2

fcgi呼び出しの前にhttpsにリダイレクトするルールを追加します。このリダイレクトは、httpが要求された場合にのみ発生する必要があります。

私の.htaccessは次のようになります。

Options -Indexes +FollowSymLinks +ExecCGI
<IfModule mod_fcgid.c>
        AddHandler cgi-script .fcgi
        RewriteEngine On

        #redirect to https if http, notice the L tag
        #it will break the rule processing and trigger the redirection        
        RewriteCond %{HTTPS} !=on
        RewriteRule ^(.*)$ https://${HTTP_HOST}/$1 [R,QSA,L]

        #handle the request (must be https at this point)
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
</IfModule>
于 2014-03-18T15:31:38.967 に答える
1

%{HTTPS}変数を使用したい:

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
于 2012-04-11T02:50:24.523 に答える