如果数据库断开连接,如何获取站点URL?

时间:2016-09-30 作者:DᴀʀᴛʜVᴀᴅᴇʀ

最近我意识到您可能会包含一个db错误。您的wp-content “目录来自”How to monitor server for error establishing a database connection“这将用自定义的内容替换现有的WordPress数据库错误消息。我考虑在db-error.php中执行重定向,如:

header("Location: http://vader.com/saber.html");
exit();
但我想替换http://vader.com 有了网站URL,这样就可以进行移植,但经过研究,我没有找到一种在没有连接的情况下获取网站URL的方法,根据讨论,我被告知您希望对wp进行最小的修改。配置文件。有没有一种方法可以在没有数据库连接的情况下获取站点URL,而数据库连接可以在标头重定向中使用?

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

一个选项是在wp-config.php 文件本身。这实际上覆盖了siteurl 选项,但这也意味着您可以引用URL而无需进行查询。

从…起the Codex:

可以在wp配置中手动设置站点URL。php文件。

将这两行添加到wp配置中。php,其中;实例“com”;是站点的正确位置。

define(\'WP_HOME\',\'http://example.com\');
define(\'WP_SITEURL\',\'http://example.com\');
之后,在常规主题中使用代码检查siteurlhome 选项将从常量而不是数据库中提取(因此我在上面的覆盖上做了注释)。但在默认错误脚本中,可以引用WP_SITEURL 直接构建重定向URL。

SO网友:Dhul Wells

DB错误必须来自所请求的站点。那么,为什么不使用Superglobal$\\u服务器并获取HTTP主机呢。

header("Location: https://" . $_SERVER[\'HTTP_HOST\'] ); //Redirect to root

exit(); //Exit 

SO网友:Rarst

WordPress依靠配置来“告诉”它正确的URL是什么。这可能是数据库选项或WP_HOME 覆盖它的常量。对于自定义站点,通常的做法是在wp-config.php 而且不必为DB选项操心。

一般情况更为复杂,因为没有专用的WP API函数(我记得),这使得它可以在没有配置的情况下确定该信息。

我能想到的源代码中最接近的例程是RELOCATE 模式被设置,它明确告诉WP URL配置不可靠,应该从当前状态更新。

中的相关代码wp-login.php 是否执行以下操作:

if ( defined( \'RELOCATE\' ) && RELOCATE ) { // Move flag is set
    if ( isset( $_SERVER[\'PATH_INFO\'] ) && ($_SERVER[\'PATH_INFO\'] != $_SERVER[\'PHP_SELF\']) )
        $_SERVER[\'PHP_SELF\'] = str_replace( $_SERVER[\'PATH_INFO\'], \'\', $_SERVER[\'PHP_SELF\'] );

    $url = dirname( set_url_scheme( \'http://\' .  $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'PHP_SELF\'] ) );
    if ( $url != get_option( \'siteurl\' ) )
        update_option( \'siteurl\', $url );
}
因此,如果没有访问配置的权限,您剩下的选项将$_SERVER 上下文,这不太可靠。

相关推荐

WP_ENQUEUE_STYLE-css未加载-ERR_TOO_MANY_REDIRECTS

更改为后。在public\\u html中使用htaccess尝试HTTP->;我的网站的HTTPS重定向CSS开始失败。恢复文件没有帮助,所以我选择按forward来更改的所有实例http://domain->;https://domain在线使用推荐的方法。然而,我的CSS仍然没有加载。。。(已尝试清除本地和wordpress缓存)。通过浏览器检查开发人员,我发现以下错误:告诉我CSS文件没有被加载。检查这些表明CSS文件没有被带到本地计算机,复制链接我无法检索文件。。。但是,如果我删除?ve