使URL在本地和远程工作以进行开发

时间:2011-12-12 16:01:36

标签: php apache url hosts

我想要一个用于本地/远程Web开发的无缝便携式解决方案,它允许我在本地开发环境中使用本地工作的绝对URL / URI,并且无需修改即可在远程服务器上工作。
我已经让MySQL以这种方式工作了,因为我在我的机器上将主机名重定向到127.0.0.1,并使用远程服务器使用的相同主机名,以及相同的用户和pass。 但是当谈到http时,我当然不能这样做,因为那时我无法从浏览器访问远程URL,反过来我会看到本地Web服务器。
那有什么办法吗? 我在apache上使用PHP,以及几个不同的MVC,Wordpress等等,所以也许通过代码执行此操作在项目之间不会非常便携,并且还具有区分本地和远程的代码检查,可能会对生产产生负面影响服务器性能。

编辑:好的,我知道如何在PHP中执行此操作,我宁愿在我的本地环境中进行一些配置,因此远程服务器不必为此进行额外处理。
此外,还有一些文件不经过PHP预处理,如.js文件,也需要这样做。

2 个答案:

答案 0 :(得分:2)

您可以使用$_SERVER['HTTP_HOST']获取用于访问该页面的主机名(或IP地址)。因此,您可以制作所有绝对网址

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

而不是

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

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

答案 1 :(得分:1)

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

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

然后当你想添加链接时:

<a href="<?php echo $baseurl; ?>index.html">Home</a>