2012-03-28 6 views
1

ウェブサイト全体をやり直しており、ブラウザは同じURLにあるページのキャッシュindex.htmlを使用しています。ブラウザが古いキャッシュ済みのindex.htmlを使用しないようにするにはどうすればよいですか?

これが問題ディレクトリの1つで.htaccessファイルの内容全体です:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /products/ 

    # Remove 'index.html' from the URL for old links that include it. 
    RewriteCond %{THE_REQUEST} ^.*\index\.html?\ HTTP/ 
    RewriteRule ^(.*)index\.html?$ "/products/$1" [R=301,L] 

    # Use index.php for all requests. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule^/products/index.php [L] 
</IfModule> 

# An atempt to tell the browser not to use a cached .html file. 
ExpiresActive on 
ExpiresByType text/html "access plus 0 seconds" 

<FilesMatch "\.(html)$"> 
    Header set Cache-Control "private, must-revalidate" 
</FilesMatch> 

私はここで、複数のものを試してみたが、何も作業していません。これは私がヘッダーに表示さのすべてである:

Request URL:http://www.example.com/products/ 
Request Method:GET 
Status Code:200 OK (from cache) 

何のリクエストヘッダやレスポンスヘッダはありません。

私はおそらく何かの最後に?28032012のようなものを追加するためにRewriteRuleを試すことができると思っていますが、私はそれを試みる方法もわかりません。

+0

あなたはindex.htmlページ自体を編集することができませんか? http://stackoverflow.com/questions/748193/html-php-page-being-cached-client-side-when-it-should-not-be –

+0

私はできますが、可能。 – JDavis

+0

mod_expiresがまったく動作しないようです。 LoadModule expires_module modules/mod_expires.soのコメントを外してもよろしいですか?その前に、ブラウザの一時ファイルを消去する必要があります。私はこれが役立つことを願っています – huangli

答えて

0

ソリューションは、非WWWの要求にすべてのWWWの要求をリダイレクトすることでした。基本的に、この方法では、サイトのwwwバージョンが存在しなくなったため、ブラウザにキャッシュされたリソースを使用できなくなりました。

0

私は問題のあるファイル名に「?version = <%= version%>」と追加して読んだことが、キャッシュ破棄の良い方法です。 10分以上経過したページ上のものがサーバーから引き出されるように、httpヘッダー "cache-control:max-age = 600"の簡単な解決方法として試すこともできます。

0

ちょうど/を追加できますか?あなたのURLの最後に。 例:私はこれを使用して終了

www.google.com/? 
関連する問題