在重定向到子域之前,我可以检查维护模式吗?

时间:2016-07-25 作者:DᴀʀᴛʜVᴀᴅᴇʀ

我目前正在一个网站上工作,该网站将有几个子域,这些子域需要根据来源国进行重新定向,但服务器没有mod_geoip 允许使用模块,因此我不能使用.htaccess 重定向,如:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

# Canada
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule ^(.*)$ http://ca.abcd.com$1 [L]
我做了一些研究发现Cloudflare 允许地理定位,我可以使用(代码示例):

$country_origin = strtolower($_SERVER[\'HTTP_CF_IPCOUNTRY\']);
in a switch like (code is an example, hasn\'t been tested):

$country_origin = strtolower( $_SERVER[ "HTTP_CF_IPCOUNTRY" ] );
$clean_url = preg_replace("(^https?://)", "",  get_site_url() );
if ( !empty( $country_origin ) && $country_origin != \'us\' ) {
  switch( $country_origin ) {
    case \'et\';
        header( \'Location: http://\' . $country_origin . \'.\' . $clean_url );
        break;          
    case \'us\';
        header( \'Location: http://\' . $country_origin . \'.\' . $clean_url );
        break;
    case \'ca\';
        header( \'Location: http://\' . $country_origin . \'.\' . $clean_url );
        break;
  }
}
由于每个子域都有自己的WordPress安装,因为内容将被分别重新编写和管理,我如何检查站点是否在维护模式下启用了停止/阻止重定向?

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

WordPress每次将博客插入维护模式时,都会在安装目录的根目录中创建一个文件。

该文件包含与正在更新的插件/主题/核心相关的字符串。其名称为.maintenance (没有名称,只有扩展名)。

文件将一直保留在那里,直到进程结束,因此您可以通过执行以下操作来检查文件是否存在:

if( file_exists(ABSPATH .\'/.maintenance\') ) { 
    // Stop redirection here
}
这就是你要找的。

相关推荐

Redirect htaccess

我需要帮助重定向我的页面。例如,我有网站https://example.com. 我需要将内容从https://example.com 到https://example.com/blog. 这不是问题,我通过更改主页URL来做到这一点。这很有效。但现在我需要添加来自旧的重定向https://example.com 到https://xmpl.com.我想用。htaccess,但这不起作用。你们能帮帮我吗?以下是我对此的一些尝试,但两者都不起作用。RewriteEngine On RewriteRu