.htaccess将include路径设置为document_root变量

时间:2012-11-05 11:16:55

标签: .htaccess

这一直让我整个上午疯狂。

我们正在使用git在多台机器上开发一个网站。

在大多数情况下,我们可以将计算机设置为与开发服务器具有相同的设置。不幸的是,团队中有一个人在窗户上,这造成了各种各样的破坏。

我想解决的主要问题是:

在我的.htaccess文件中,我正在使用php_value auto_prepend_file default_roots.php

当写一个自动前置文件时,我知道你必须使用你正在调用的文件的绝对路径。 这就是导致问题的原因,Windows机器上的绝对路径将与办公室中任何其他已设置为匹配的机器上的路径不同。

什么可以解决我的问题是能够将.htaccess中的include_path设置为%{DOCUMENT_ROOT}然后我可以将文件放在任何机器上的文档根目录中,并且文件的绝对路径始终是正确的。< / p>

不幸的是,这看起来不可能(或者我希望我的语法错误,有人可以告诉我它是如何完成的)

我曾考虑在不同的机器和环境中编写不同的.htaccess文件,并使用gitignore阻止它们相互干扰。这就是我开始的地方,但让人们真正使用gitignore并让它阻止他们干扰似乎是一个问题,我不得不多次进入并修复它。在我看来,它也不那么优雅。

所以我希望社区内有人为我提供解决方案,因为我在这里疯了。

干杯

1 个答案:

答案 0 :(得分:0)

当它开始使用Git时,特别是在团队中,它就是工作流程。这有两个解决方案:

  1. 同意root设置:从技术上讲,如果从Web服务器的根目录运行PHP应用程序,则不应该出现问题(例如:local.website.dev OR localhost) .htaccess文件将始终位于根目录。因此没有问题。

  2. 同意工作流程:有一种解决方法,不是动态地调用.htaccess中的值,而是每次都在{{1}内动态地构建文件1}}工作流程,改为更新原始文件。

  3. 我刚刚为您的问题创建了一个小解决方案,每次您结帐主分支时都会生成一个新的Git。因此,在您的工作流程中,您可以在每.htaccess后结帐。

    您需要在PHP中维护git pull规则。所以这是团队合作的一个小挑战。但问题解决了!

    Github: mchebib/git-dyno-htaccess

    上查看

    或者直接跳进去:

    .htaccess
    希望对你有用。

    干杯!

相关问题