有没有一种很好的方法来处理本地,测试和生产的不同基本URL?

时间:2013-08-11 18:53:45

标签: php git apache workflow

我想知道是否有人能够很好地处理为本地,测试和生产环境提供不同URL基础的情况。

我尝试使用相对地址,但有时这是不可能的。

当应用程序的主页改变时,如何阻止事情发生:

本地:

http://localhost:8888/mysite/index.php (URL base is /mysite/)

测试:

http://mytestingsite.com/testing/mysite/index.php (URL base is/testing/mysite/)

生产:

http://mysite.com/index.php (URL base is /)

2 个答案:

答案 0 :(得分:1)

使用$_SERVER['SERVER_NAME']switch

如果它与给定主机匹配,请定义包含要使用的URL基础的变量。在header.php中发生这种情况,或者总是导入一些settings.php,并在必要时调用此变量!

或者,在每个具有预设值的环境中都有一个单独的settings.php文件,但这需要在每个代码库中进行少量更改。

答案 1 :(得分:0)

您应该使用网络服务器中的虚拟主机始终将您的基本网址设为/。请参阅网络服务器的文档,了解如何执行此操作。

另一种解决方案是对您的网站进行编程,以便将其保存在任何目录中。这可能包括在您的index.php中计算所有与$ baseurl相关的链接。但是我强烈推荐第一个解决方案。