我在局域网内的PC上配置了WordPress。因此,我可以使用localhost / WordPress从同一台计算机访问它,或使用IP / WordPress在局域网上的其他PC上访问它。
我配置了路由器,因此端口80被重定向到服务器IP,但是如果从LAN外部加载页面,则无法加载CSS和JS,因为路由是WordPress配置上的localhost。如果我将其更改为我的freedns网址,请说:myamazingurl.mooo.com,可以从我的局域网外部访问它,它会加载CSS和JS。
现在,我无法从局域网中访问我的网站。 是否有任何解决方法或修复方法?
我读到了dnsmasq,但我没有成功。
答案 0 :(得分:2)
查看Relative URL WordPress插件。即使插件是用于通过本地网络的IP访问页面,效果也应该保持不变。 (因为主要问题是更改URL)
相对URL将wp_make_link_relative函数应用于链接(帖子,类别,页面等),以将它们转换为相对URL。在移动设备上调试本地WordPress实例时对开发人员很有用。
http://localhost:8080/wp/2012/09/01/hello-world/
将转换为/wp/2012/09/01/hello-world/
http://localhost:8080/wp/wp-content/themes/twentyeleven/style.css
将转换为/wp/wp-content/themes/twentyeleven/style.css
然后,在激活此插件后,您只需使用iPad或其他移动设备上的http://192.168.0.1:8080/wp/即可访问本地实例,而不会出现样式和导航问题。
答案 1 :(得分:0)
我找到的一个选项是编辑/ etc / hosts文件并将freedns url重定向到我的localhost。所以它现在正在工作,但我不知道这是不是正确的做法......
答案 2 :(得分:0)
在尝试了几乎所有东西来整理一个WP开发并且开启和取消之后,我终于找到了上面的解决方案。 相对URL插件是一种享受。感谢提示ByteHamster:)
更新:经过测试,这不是我想要的。在此处找到了解决方法:https://wordpress.stackexchange.com/questions/55239/cant-access-wp-site-over-wifi-network
...即
define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] );
// or
// define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/path_to_dir' );
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] );
// or
// define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/path_to_dir' ); //this is the one that fixed my issue.
现在,我可以在局域网的所有设备上看到开发网站的所有荣耀。
答案 3 :(得分:0)
主要问题是因为wordpress使用数据库中的服务器地址,而不是像codeigniter或其他人那样。
wordpress使用名为home
和siteurl
的选项中的根网址,因此,如果您尝试在计算机外部访问wordpress,则可能会获得错误的css和javascript路径。
您需要更改setting
- >下的选项general
并使用您的服务器IP填写WordPress Address (URL)
和Site address (URL)
如果您希望在不进行重定向的情况下获得正确的路径,则可以在wp-config.php
在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);