2011-12-12 61 views
0

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

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

+0

我觉得改变主机文件和创建虚拟主机在您的Web服务器提供了最完整的模拟。 – goat

回答

1

你可以有这样的事情(怎么你包括由你):

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

,然后当你想添加一个链接:

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

是的,但这会影响活动服务器的性能,而且我有不通过PHP解释器的文件,比如纯的.js文件 – Petruza

2

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

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

此值会从HTTP请求的Host:头采取

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

,所以它也将占到非标准端口。

相关问题