2012-03-28 142 views
1

我正在重做整個網站,瀏覽器正在使用處於相同URL的頁面的緩存index.html如何防止瀏覽器使用舊的緩存的index.html?

這是.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) 

沒有請求標頭或響應標頭。

我在想我可以嘗試一個RewriteRule來添加一些類似?28032012的東西,但我不知道如何嘗試。

+0

難道你們就不能修改自己的index.html頁面? http://stackoverflow.com/questions/748193/html-php-page-being-cached-client-side-when-it-should-not-be – 2012-03-28 19:59:37

+0

我可以,但我需要儘快推住這個網站可能。 – JDavis 2012-03-28 20:03:42

+0

它看起來像mod_expires根本不工作。您確定您已取消註釋LoadModule expires_module模塊/ mod_expires.so?在此之前,您應該清除瀏覽器的臨時文件。我希望這有幫助。 – huangli 2012-03-29 02:23:44

回答

0

最後我用這個解決方案是所有重定向請求WWW非WWW請求。所以基本上,這種方法阻止了任何瀏覽器使用任何緩存資源,因爲該網站的www版本不再存在。

0

我讀過附加?版本= <%=版本%>有問題的文件名是緩存清除的好方法。您也可以嘗試使用http標題「cache-control:max-age = 600」的更簡單的解決方案,以便從服務器中提取10分鐘或更長時間的頁面上的任何內容。

0

你可以只追加/?到您網址的末尾。 例子:

www.google.com/? 
相關問題