AEMがApache書き換えルールを介して/robots.txtをリダイレクトできない

Apacheが/robots.txtをAEMのDAM パスに書き換えるように設定されていても、リクエストがまだ​ 404 ​を返す場合は、DispatcherがURLを処理する方法が原因である可能性があります。 この記事では、DispatcherUseProcessedURL設定が書き換え動作に与える影響と、更新によってリダイレクト エラーが解決される方法について説明します。

説明 description

環境

Adobe Experience Manager(AEM)オンプレミス、v6.5

問題/症状

  • 書き換えルールは、/robots.txt/content/dam/xxxx/robots.txtにリダイレクトするように設定されています。 アセットは存在し、直接アクセスできます。
  • Dispatcherでは、ルールによって/robots.txt/content/dam/xxxx/robots.txtの両方へのアクセスが許可されています。 それでも、/robots.txtにアクセスすると、404 エラーが返されます。

根本原因

Apache設定には、次の書き換えルールが含まれます。

RewriteRule /robots.txt$ /content/dam/xxxx/robots.txt [ PT,L]

このルールは、/robots.txtのリクエストをDAM パスに正しく書き換えます。 ただし、Dispatcherには次の機能が設定されています。

DispatcherUseProcessedURL 0

この設定では、Dispatcherは書き換えられたURLを無視し、代わりに元のリクエスト URIを使用します。 その結果、書き換えられたパスが認識されず、404 エラーが返されます。

Dispatcherのインストール ​ ドキュメントによると、DispatcherUseProcessedURL1 に設定すると、Dispatcherはmod_rewriteの後に処理されたURLを使用し、リダイレクトが期待どおりに機能するようになります。

解決策 resolution

この問題を解決するには:

  1. Apache Dispatcher設定ファイル(通常はhttpd-dispatcher.confという名前)を開きます。
  2. DispatcherUseProcessedURL ディレクティブを探します。
  3. 値を0から1に変更します。
    • DispatcherUseProcessedURL 1
  4. ファイルを保存し、Apacheを再起動して変更を有効にします。

この変更により、Dispatcherでは、元のリクエスト (/robots.txt)ではなく書き換えられたURL (/content/dam/xxxx/robots.txt)が使用されるようになり、リダイレクトが期待どおりに機能するようになります。

関連トピックス

AEM Dispatcher ガイドのDispatcher セキュリティ チェックリスト ​

recommendation-more-help
experience-cloud-kcs-help-kbarticles