.htaccess 使代码可移植到域、子域或directores的最佳实践

.htaccess 使代码可移植到域、子域或directores的最佳实践,.htaccess,subdomain,subdirectory,.htaccess,Subdomain,Subdirectory,我最近编写了一些代码,不知道最终代码是否会驻留在子域中(http://user.domain.com/)或者在子域中(http://domain.com/user),我对这些未知场景的最佳实践一无所知。我可以想到一对: 使用绝对路径(/css/styles.css)和modrewrite(如果最终为/user) 拥有一个设置文件,并使用路径()声明一个变量 使用相对路径(../css/styles.css) 处理这个问题的最佳方法是什么?2和3的混合。使用相对于集合变量的路径 如果对可能部署的位

我最近编写了一些代码,不知道最终代码是否会驻留在子域中(http://user.domain.com/)或者在子域中(http://domain.com/user),我对这些未知场景的最佳实践一无所知。我可以想到一对:

  • 使用绝对路径(/css/styles.css)和modrewrite(如果最终为/user)
  • 拥有一个设置文件,并使用路径(
    )声明一个变量
  • 使用相对路径(../css/styles.css)

  • 处理这个问题的最佳方法是什么?

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

    如果对可能部署的位置有任何疑问,我会尽可能避免绝对路径,如果必须使用绝对路径,请确保使用
    $\u服务器中的数据构建绝对路径。值
    $\u SERVER['PHP\u SELF']
    将包含当前正在执行的脚本的路径和文件名,然后您可以使用以下方法提取路径:

    $path = dirname($_SERVER['PHP_SELF']);
    
    同样地,值
    $\u SERVER['HTTP\u HOST']
    将包含当前主机,从这两个值中,您可以构建到任何位置的路径。如果您使用的是HTTPS,您可能还需要在
    $\u服务器['HTTPS']
    中检查协议

    尽管如此,最好还是尽可能使用相对路径和简单的文件和目录结构,因为这样可以使所有内容更便于移植和阅读。如您的示例所示,如果您发现自己做了大量的
    。/css/styles.css
    ,那么您可能需要重新考虑事物的结构