2014-01-09 37 views
1

對於我們的開發服務器,我有一個接口,人們可以將其IP暫時添加到允許的IP列表中。如果有人試圖從不在列表中的IP訪問URL,它將被重定向到IP添加接口。但是一旦添加了IP,所請求的原始URL仍然會重定向到接口(瀏覽器緩存重定向,這對我們的客戶端來說是令人困惑的)。.htaccess;瀏覽器緩存錯誤重定向

重定向是通過指定ErrorDocument完成的。我可以強制uncache嗎?

我的.htaccess根:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(!www\.)?(.+) 
RewriteCond %{HTTP_HOST} ^(.*)\.SITENAME\.com 
RewriteRule ^(.*)$ http://SITENAME.com/%1/$1 [L,P,NC,QSA] 

##### 

ErrorDocument 403 http://xs.SITENAME.com 

order deny,allow 
deny from all 

allow from 12.345.678.90 #1389452253 
allow from 12.345.678.91 #1389461806 
allow from 12.345.678.92 #1389486472 
allow from 12.345.678.93 #1389550179 
allow from 12.345.678.94 #1389618643 

編輯:接受的答案似乎是擺在首位的工作,但在一些場合出於某種原因沒有。每當有人被重定向到錯誤頁面時,最好的解決方案就是改變.htaccess。 (打開.htaccess,將註釋行更改爲#random_string(例如unix時間))這會使瀏覽器重新檢查.htaccess

回答

2

您可以嘗試使用這些規則,但不幸的是,如果瀏覽器決定緩存請求,沒有任何我們可以做的強制它不。

FileETag None 
<IfModule mod_headers.c> 
    Header unset ETag 
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
    Header set Pragma "no-cache" 
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</IfModule> 

你也可以換那些規則<FilesMatch><Files>裏面只針對一個或幾個網址:

<FilesMatch "\.(htm|html)$"> 
     # The rules from above 
    </FilesMatch> 

    <Files index.php> 
     # The rules from above 
    </Files> 
+0

這似乎與我們的大多數瀏覽器,謝謝合作!雖然這是一個恥辱強制重載每頁加載... 我想我會添加此uncache有條件。只有當某人剛剛添加IP時,這個uncache將會在htaccess中幾分鐘後消失 – Hacktisch