ディスパッチャーから URL マッピングリソースをフラッシュする方法

質問

CQ5 は Apache Sling を通じて URL マッピング機能を提供します。最も重要な要件の 1 つは、SEO に最適化された URL を許可することです。
ディスパッチャーキャッシュに関して、以前にキャッシュされた HTML リソースとディスパッチャーフラッシュリクエストの間に不一致があります。これに加えて、statfileslevel の値が > 0 に設定されている場合、キャッシュ有効性を決定するために使用される .stat ファイルの場所は、実際にキャッシュされたファイルと一致しません。

:

  • リクエスト http://www.mydomain.com/geometrixx/en/company.html
  • ディスパッチャーにより、<docroot>/geometrixx/en/company.html でキャッシュされます。
  • /content/geometrixx/en/company はオーサリングインスタンスからレプリケートされます。
  • Dispatcher フラッシュエージェントは、Dispatcher キャッシュから /content/geometrixx/en/company をフラッシュするようリクエストしています。
  • ディスパッチャーモジュールは、<docroot>/content/geometrixx/en/company. でリソースをフラッシュしようとします。* 何も見つかりません -> キャッシュはフラッシュされていません

回答、解決策

実際の問題は、ディスパッチャーフラッシュリクエストが、レプリケーションの結果として、ディスパッチャーキャッシュからフラッシュされるリソースの絶対パスを送信することです。この不一致を解決するには、マッピングされた URL を Web サーバーレベルで元の絶対パスフォームに書き換え、ファイルシステムレベルで一貫して、ディスパッチャーモジュールにキャッシュエントリーの読み取り、書き込み、フラッシュをさせることをお勧めします。これは、.stat ファイルの読み取りおよび書き込みに適用されます。

Apache HTTP サーバーが Web サーバーとして使用されている場合は、mod_rewrite が書き換えを実現するために必要なすべての機能を提供します。

次の例は、Apache's mod_rewrite モジュールで設定を書き換える方法を示します。この例を次に示します。

  • ドメイン www.geometrixx.de への受信リクエストを /content/geometrixx/de にマップします。
<VirtualHost *:80> ServerName www.geometrixx.de RewriteEngine On RewriteRule ^/(.*\.html)$ /content/geometrixx/de/$1 [PT] <Directory /> <IfModule disp_apache2.c> SetHandler dispatcher-handler </IfModule> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost> 

適用

CQ5.2.x、CQ5.3

アドビのロゴ

アカウントにログイン