0

我想要一个用于本地/远程 Web 开发的无缝且可移植的解决方案,它允许我在本地开发环境中使用在本地工作的绝对 URL/URI,也可以在不修改的情况下在远程服务器上工作。

我已经让MySQL以这种方式工作,因为我在我的机器上将主机名重定向到 127.0.0.1,并使用远程服务器使用的相同主机名,以及相同的用户和密码。

但是当涉及到 HTTP 时,我当然不能这样做,因为那时我无法从浏览器访问远程 URL,而反过来我会看到本地 Web 服务器。

那么有没有办法呢?

我在 Apache HTTP Server 和几个不同的 MVC、WordPress 等上使用 PHP,所以可能通过代码执行此操作在项目之间不会非常便携,并且还检查区分本地和远程的代码,可能会产生负面影响生产服务器性能。

我知道如何在 PHP 中做到这一点,我宁愿在我的本地环境中做一些配置,这样远程服务器就不必为此做额外的处理。此外,有些文件不经过 PHP 预处理,如 .js 文件,也需要这样做。

4

2 回答 2

2

您可以使用$_SERVER['HTTP_HOST']来获取用于访问页面的主机名(或 IP 地址)。所以你可以让你所有的绝对网址

$url = "http://{$_SERVER['HTTP_HOST']}/path/to/file";

代替

$url = "http://localhost/path/to/file";

该值将取自Host:HTTP 请求的标头,因此它还将考虑非标准端口。

于 2011-12-12T16:05:52.127 回答
1

你可以有这样的东西(你如何包含它取决于你):

if($_SERVER['SERVER_NAME'] == "localhost"){
        $baseurl = "http://localhost/";
}else{
        $baseurl = "http://livesite.com/";
}

然后当您要添加链接时:

<a href="<?php echo $baseurl; ?>index.html">Home</a>
于 2011-12-12T16:05:48.747 回答