.htaccess 规则在用户使用站点时使站点脱机
Posted
技术标签:
【中文标题】.htaccess 规则在用户使用站点时使站点脱机【英文标题】:.htaccess rules to put a site offline while users are using it 【发布时间】:2014-07-27 18:13:48 【问题描述】:我正在编写一个 .htaccess,以便能够软更新我的网站,防止新用户访问它,并且已经连接的用户被软重定向,考虑到有一些图像翻转、css 样式和进程中的异步 PHP 和 js 调用可以在显示的页面内调用,而无需从网站重新加载新页面。
只是将任何内容重定向到 update.php 页面会对包含此类内容的页面产生一些不良影响。
因此,我一直在努力寻找正确的规则集来放入我的 .htaccess 以实现以下目标。你能帮帮我吗?
如果调用了 specialpage.php(即使有参数) 重定向到 specialpage_redirected.php
如果调用了 specialpage2.php(即使有参数) 重定向到 specialpage2_redirected.php
如果调用了任何其他 php 文件(即使带有参数) 重定向到redirected.php
如果调用了 specialscript.js 重定向到 specialscript_redirected.js
如果调用了任何其他 .js 重定向到redirected.js
并允许访问所有其他文件(css、图像、...)
...或者,如果您有更好的解决方案来实现此目标,将网站离线进行维护,同时考虑之前的限制(动态页面上已经连接的用户)。
【问题讨论】:
RewriteRule (specialpage)\.(php|js)$ $1_redirect.$2
【参考方案1】:
将这些规则放在您的 DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteBase /
RewriteRule ^(specialpage2?)\.php$ $1_redirected.php [L,NC]
RewriteCond %REQUEST_URI !^/specialpage [NC]
RewriteRule \.php$ redirected.php [L,NC]
RewriteRule ^(specialscript)\.js$ $1_redirected.js [L,NC]
RewriteCond %REQUEST_URI !^/specialscript [NC]
RewriteRule \.js$ redirected.js [L,NC]
【讨论】:
谢谢,我试试这个。这些语句是否考虑了可能的 php 页面参数,例如 page.php?i=1&b=test ? “php”之后的 $ 让我觉得他们没有。 是的,参数将按原样重写。查询字符串在RewriteRule
中不匹配,因此$
的存在仅与/page.php
匹配。查询字符串会自动传递给目标 URI。以上是关于.htaccess 规则在用户使用站点时使站点脱机的主要内容,如果未能解决你的问题,请参考以下文章