0

次のコードを使用して、動的に生成された PHP ページの gzip され、キャッシュされた静的バージョンに向けてページの要求を書き直しています。2 つの問題があります。

RewriteCond %{REQUEST_URI} !^/?cache/ [NC]
RewriteRule ^/?(.)(.*?)/?$ /cache/$1/$1$2.html.gz [L]
  1. まず、キャッシュされたファイルが実際に存在する場合にのみ、このルールを有効にしたいと考えています。
  2. 2 つ目は、これが gzip されたファイルであり、解凍して読み取って表示する必要があり、現在発生しているファイルのようにダウンロードする必要がないことをブラウザに指示する必要があります。

ページの URL 構造は次のとおりです。

http://mydomain.com/newest-coupon-codes/

アドレスバーをテキストに変更せずに、次のページをユーザーに表示する必要があります。

http://mydomain.com/cache/n/newest-coupon-codes.html.gz
4

1 に答える 1

1

解決策 1:

<FilesMatch "\.html\.gz$">
  ForceType text/html
  Header set Content-Encoding: gzip
</FilesMatch>

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !\?
RewriteCond %{REQUEST_URI} !^/?cache/ [NC]
RewriteCond %{REQUEST_URI} ^/?(.)(.*?)/?$
RewriteCond cache/%1/%1%2.html.gz -f
RewriteRule ^/?(.)(.*?)/?$ /cache/$1/$1$2.html.gz [L]

解決策 2:

<FilesMatch "\.html\.gz$">
  ForceType text/html
  Header set Content-Encoding: gzip
</FilesMatch>

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !\?
RewriteCond %{REQUEST_URI} !^/?cache/ [NC]
RewriteCond %{REQUEST_URI} ^/?(.)(.*?)/?$ [E=CACHE:"cache/$1/$1$2.html.gz",NE]
RewriteCond %{ENV:CACHE} -f
RewriteRule ^/?(.)(.*?)/?$ /cache/$1/$1$2.html.gz [E=!CACHE,L]
于 2012-11-09T01:43:21.010 に答える