0

あるドメインから別のドメインにリダイレクトする必要があります。両方のドメインで http および https プロトコルが有効になっています。したがって、http と https をマップするために、次のように conf ファイルでさまざまな組み合わせを試しました。 https]

#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.+)$ - [env=askapache:http]
RewriteCond %{SERVER_PORT}s ^(443(s)|[0-9]+s)$
RewriteRule ^(.+)$ - [env=askapache:%2]

RewriteCond %{HTTP_HOST} ^([www.]+)?test-redirect\.com$ [NC]  
RewriteRule  ^(.*)$ http%{ENV:askapache}//amit.test.com/content/test/category/6  [L]

#RewriteCond %{HTTP_HOST} ^([www.]+)?test-redirect\.com$ [NC]  <BR> 
#RewriteCond %{HTTPS} !on
#RewriteRule .? http://amit.test.com/content/test/category/6 [L]`

ただし、https 条件がスキップ/無視されるたびに。ログの書き換えもありません。私はネット上で非常に多くの例を見てきました。なぜhttpsを検出しないのか理解できませんか?httpは完全に正常に機能しています。

4

1 に答える 1

0
  • 書き換えログは、https と http の 2 つの異なる場所にある可能性があります。HTTP_AA環境の名前に「askapache」を使用する代わりに、使用してみてください。プレフィックス HTTP_ANYTHING は、変数が使用可能であることを確認するためのより安全な方法です。一部のセットアップでは、通常は HTTP ヘッダーを表すために許可する必要がある HTTP_ 以外で始まるカスタム変数を許可しないためです。

  • https ポートが実際に 443 であることを確認してください。そうしないと、コードを変更する必要があります。

  • blockここで 1 番目と 2 番目の方法を試して、コードの mod_rewrite が機能することを確認してください:さらに新しい HTTP/HTTPS 書き換えコード最初の例を使用して機能しない場合は、最初にそのルールを使用して機能させる必要があります。

  • SetEnvIfNoCaseHTTP_AAディレクティブまたは

    SetEnv HTTP_AA

  • SSL と非 SSL の両方の vhost/httpd.conf 設定を確認します (ドキュメント ルート、オプション、AllowOverrides、Logs、および SSLOptions の StdEnvVars など)。

  • を使用して shtml ファイルを作成mod_includesしますprintenv。次に、ssl と非 ssl の両方の出力を表示し、接頭辞付きの変数に特に注意を払い、変数が出力に正しく表示されるREDIRECT_ことを確認してください。または、 printenv cgi スクリプトまたは asapache サイトの shtml サンプルを使用することもできます。HTTP_AAprintenv

  • http://httpd.apache.org/を忘れないでください。

またはこれを試してください

    Options +FollowSymLinks +ExecCGI

    # Set var now to try to try to have it availabe for mod_rewrite
    SetEnv HTTP_AA

    RewriteEngine On
    RewriteBase /

    # HTTP_AA is set to either s or is blank
    RewriteCond %{SERVER_PORT}s ^(443(s)|[0-9]+s)$
    RewriteRule ^(.+)$ - [env=HTTP_AA:%2]

    # if host not new domain, its old so redirect both http/https to new
    RewriteCond %{HTTP_HOST} !^amit\.example\.com$ [NC]
    RewriteRule  .* http%{ENV:HTTP_AA}://amit.example.com/content/test/category/6  [R=301,L]
于 2012-06-21T19:07:55.860 に答える