最終更新日 :
Apr 28, 2021 12:08:02 AM GMT
質問
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
アカウントにログイン