.htaccess 重定向是否安全/可靠(网站维护)?

.htaccess 重定向是否安全/可靠(网站维护)?

我们的网站将暂停服务约一小时左右,以进行维护。所有用户都需要重定向到表明网站正在更新和/或维护中的页面。

使用以下.htaccess规则是否可以可靠地阻止所有用户访问网站并可靠地将所有与我的 IP 不匹配的流量重定向到维护页面?也就是说,没有人可以绕过这些重定向/重写规则吗?

RewriteCond %{REQUEST_URI} !/maintenance.php$ 
RewriteCond %{REMOTE_ADDR} !^192\.192\.192\.192$
RewriteRule $ /maintenance.php [R=302,L]

答案1

我想这取决于您要关闭多少网站/服务器,以及.htaccess文件系统上是否有其他/冲突的文件?但除此之外,如果.htaccessmod_rewrite 仍然可用,那么您的临时重定向应该可以正常工作。用户绕过这些规则,除非他们以某种方式入侵你的服务器。

请记住,父目录中的 mod_rewrite 指令可以被文件系统路径下方的子指令完全覆盖。例如,如果您有一个目录,其中/foo包含使用 mod_rewrite 的自己的.htaccess文件(即/foo/.htaccess),那么如果有人请求,/foo/bar您的父 mod_rewrite 指令将被覆盖,并且不会发生重定向。因此,这些指令最好放在服务器配置中 - 在虚拟主机或者服务器context - 因此它们不能被覆盖。或者使用 mod_authz_core/host 并自定义响应。

但是,如果这是已被搜索引擎索引的现有网站,则应考虑发送 503 服务不可用响应以及Retry-AfterHTTP 响应标头(指示维护时间) - 而不是重定向。这是保留 SEO 的首选响应。

我的答案有关 503 响应的更多信息,请参阅网站管理员堆栈中的以下问题:

相关内容