web-dev-qa-db-ja.com

この構成でこのhtaccessファイルは何をしますか?

.htaccessでこの構成を見たことはありません。これは、現在リセットされている私のサイトから来ています。 SSL証明書はインストールされていませんが、以前の証明書でこれらの名前を見たことを覚えています。

だから誰もこれが何を達成するのか知っていますか?

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule (.*) http://%{HTTP_Host}%{REQUEST_URI}
RewriteCond %{HTTP_Host} ^example\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "http\:\/\/www\.example\.com\/" [R=301,L]
4
drtechno
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$

SSL証明書がインストールされていません

まあ、あなたはおそらく今やる!?これらの(タイプ)条件は、(通常は無料の)セキュリティ証明書(たとえば、「Let's Encrypt」によって提供されるもの)を自動更新するときにcPanelによって自動的に挿入されます。これは、検証ファイル(インストール中に必要)にアクセスできるようにするためです。

一部の(共有)Webホストは、明示的に要求したかどうかにかかわらず、これらの無料SSL証明書を有効にするようになりました。

詳細については、 ServerFaultでの同様の質問 への私の回答を参照してください。
https://serverfault.com/a/884922/49157


脇:

RewriteCond %{HTTPS} on

SSL証明書がインストールされていなかったと言いますが、HTTPSからHTTPへのリダイレクトを実行しようとしました(SSL証明書がなければ意味がありませんが、逆の場合も同様です)。

RewriteRule ^/?$ "http\:\/\/www\.websitename\.com\/" [R=301,L]

これは、ドキュメントルートに対する単一のリクエストのみをリダイレクトします-それは意図的なものですか?ただし、exemplifiedコードでは、リダイレクトループが発生するように見えます。


UPDATE:たぶん、あなたはより大きな絵を追い求めていた...

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule (.*) http://%{HTTP_Host}%{REQUEST_URI}
RewriteCond %{HTTP_Host} ^example\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "http\:\/\/www\.example\.com\/" [R=301,L]

ここで特に奇妙なことは何もありません。これらはたった2つの不適切に書かれたリダイレクトであり、おそらくあなたのサーバーを破壊します(質問の例示されたコードで何かが失われていない限り):

  • 1つは、HTTPSからHTTPへのリダイレクトです。理由を尋ねる必要がありますか?ブラウザの警告を回避するには、最初にSSL証明書をインストールする必要があります。 SSL証明書がインストールされている場合、SSL証明書を使用しないのはなぜですか? (しかし、おそらくあなたのサイトはHTTPSに対応していないのでしょうか?)ただし、Rフラグがないため、これは一時的な(302)リダイレクトになります。また、Lフラグがないため、書き換えエンジンはファイルを続行できます。

  • 2番目は、最初は標準的な非wwwからwwwへのリダイレクトのように見えます(偶然、cPanelによって生成されたかのように見えます-RewriteRule内の不必要なバックスラッシュエスケープsubstitutionは明確なサインです)。ただし、正規のホスト名と照合する追加のconditionは、リダイレクトループになります!また、ドキュメントルートのみをリダイレクトします。

  • 上記の他の2つのconditionsRewriteCondディレクティブ)は、SSL証明書が更新されるとcPanelによって自動的に追加されます。

4
MrWhite