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