我正在制作一个移动站点,我正在使用主计算机的IP地址从iphone连接到它10.0.0.1/wp
对于普通站点,它工作得很好,但我得到的WP站点是从CSS、JS和图像中剥离出来的,只有纯文本。在mac和iphone模拟器上运行良好。
它是已知的和可配置的吗?
我正在制作一个移动站点,我正在使用主计算机的IP地址从iphone连接到它10.0.0.1/wp
对于普通站点,它工作得很好,但我得到的WP站点是从CSS、JS和图像中剥离出来的,只有纯文本。在mac和iphone模拟器上运行良好。
它是已知的和可配置的吗?
是的,因为wordpress使用数据库中的服务器地址get_option(\'siteurl\')
和get_option(\'home\')
, 因此,如果您从IP地址访问wordpress,资产(js和css)仍将从localhost/wp/
这意味着127.0.0.1
不是10.0.0.1
获取wordpress动态url的简单方法是在wp配置上定义site\\u url和home\\u url。php函数,用于解析请求并获取wordpress的正确根url
尝试将此脚本添加到
/** Absolute path to the WordPress directory. */
if ( !defined(\'ABSPATH\') )
define(\'ABSPATH\', dirname(__FILE__) . \'/\');
/**
* get home url from absolute path
* @return string url to main site
* lafif@astahdziq.in
*/
function get_dynamic_home_url(){
$base_dir = ABSPATH; // Absolute path
$doc_root = preg_replace("!${_SERVER[\'SCRIPT_NAME\']}$!", \'\', $_SERVER[\'SCRIPT_FILENAME\']);
$base_url = preg_replace("!^${doc_root}!", \'\', $base_dir);
$protocol = empty($_SERVER[\'HTTPS\']) ? \'http\' : \'https\';
$port = $_SERVER[\'SERVER_PORT\'];
$disp_port = ($protocol == \'http\' && $port == 80 || $protocol == \'https\' && $port == 443) ? \'\' : ":$port";
$domain = $_SERVER[\'SERVER_NAME\'];
$home_url = "${protocol}://${domain}${disp_port}${base_url}";
return $home_url;
}
$url = get_dynamic_home_url();
define(\'WP_SITEURL\', $url);
define(\'WP_HOME\', $url);
内部选项之间可能存在冲突\'home\'
或\'siteurl\'
以及每个纯IP地址的访问权限。WordPress不仅仅使用任何服务器名称,这里可能会有一些冗余。
您可以尝试通过在wp-config.php
:
define( \'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\'] );
// or
// define( \'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wp\' );
define( \'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] );
// or
// define( \'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wp\' );
这些常量应优于数据库中的选项。我正在尝试使用后端和设置->永久链接更新永久链接结构。这个.htaccess 文件未更新。我已经给了.htaccess 完全访问chmod -R 777 .htaccess Wordpress表示,permalinks正在更新,但尚未通过。当我点击时,我仍然收到来自apache2.