的.htaccess;浏览器缓存错误重定向

时间:2014-01-09 13:21:08

标签: .htaccess browser-cache errordocument

对于我们的开发服务器,我有一个界面,人们可以将其临时添加到允许的IP列表中。如果有人试图从列表中没有的IP访问URL,则会将其重定向到IP添加界面。但是一旦添加了IP,请求的原始URL仍会重定向到接口(浏览器缓存了重定向,这对我们的客户来说很混乱)。

通过指定ErrorDocument完成重定向。我可以强行解除它吗?

根目录中的.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

1 个答案:

答案 0 :(得分: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>