我目前正在一个网站上工作,该网站将有几个子域,这些子域需要根据来源国进行重新定向,但服务器没有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安装,因为内容将被分别重新编写和管理,我如何检查站点是否在维护模式下启用了停止/阻止重定向?
最合适的回答,由SO网友:Johansson 整理而成
WordPress每次将博客插入维护模式时,都会在安装目录的根目录中创建一个文件。
该文件包含与正在更新的插件/主题/核心相关的字符串。其名称为.maintenance
(没有名称,只有扩展名)。
文件将一直保留在那里,直到进程结束,因此您可以通过执行以下操作来检查文件是否存在:
if( file_exists(ABSPATH .\'/.maintenance\') ) {
// Stop redirection here
}
这就是你要找的。