使代码可移植到域,子域或直接库的最佳实践

时间:2010-12-31 18:44:43

标签: .htaccess subdomain subdirectory

我最近编写了一些内容,其中不知道最终代码是否位于子域(http://user.domain.com/)或子域(http://domain.com/user)中,我对这些未知场景的最佳实践感到迷茫。我能想到一对夫妇:

  1. 使用绝对路径(/css/styles.css)和modrewrite如果它最终是/ user
  2. 拥有设置文件并使用路径(<? php echo $domain . "/css/styles" ?>
  3. 声明变量
  4. 使用相对路径(../ css / styles.css)。
  5. 处理此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

2和3的混合。使用相对于set变量的路径。

答案 1 :(得分:1)

如果对可能部署的内容有任何疑问,我会尽可能避免使用绝对路径,如果必须使用它们,请确保使用$_SERVER超全局中的数据构建它们。值$_SERVER['PHP_SELF']将包含当前正在执行的脚本的路径和文件名,然后您可以使用以下内容提取路径:

$path = dirname($_SERVER['PHP_SELF']);

同样,值$_SERVER['HTTP_HOST']将包含当前主机,从这两者一起,您可以构建到任何地方的路径。如果您使用的是HTTPS,则可能还需要在$_SERVER['HTTPS']中查看协议。

话虽如此,最好尽可能使用相对路径和简单的文件和目录结构,因为它使一切更便携,更容易阅读。如果你在例子中发现自己做了很多../css/styles.css,那么你可能想重新考虑事情的结构。