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
上下文,这不太可靠。