【发布时间】:2011-02-24 23:44:17
【问题描述】:
我认为我遗漏了一些东西,并且认为我并不真正了解 rewriteBase 的工作原理。
我的问题是我有一个生产站点,该站点位于根目录中,但我的开发站点位于 localhost 子目录中。例如 http://www.sitename.com/ 与 http://localhost/sitename/
例如,如果我有一个图像文件夹,我想通过使用 href 中的初始斜杠从站点根目录引用图像。例如使用相对href(没有初始斜线)不是一种选择。这将在生产站点上工作,但开发站点正在寻找 http://localhost/images/imagename.jpg 而不是 http://localhost/sitename/images/imagename.jpg
所以我认为我需要做的就是在我的 .htaccess 文件中设置以下内容,以在开发环境中强制站点根到我的子域:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /sitename
但这仍然使用 localhost 作为站点根目录,而不是 localhost/sitename。
谁能指点一下?
--------------编辑---------- ------
我停止尝试在 .htaccess 文件中执行此操作,并尝试仅使用 html 命令,但这也不起作用。
最后,我在本地服务器上的 Apache 中设置了虚拟主机,但仅仅更改站点根目录似乎太过分了。我还担心 LAN 网络上的其他开发人员将无法通过虚拟主机正确访问该站点。
我真的需要一些关于在 WAMP 中设置可行的开发环境的“最佳实践”建议。
【问题讨论】:
-
我不得不在一个有 8 个站点(虚拟主机)的服务器上对一个站点进行大量修改,所以我将该站点复制到另一个目录,并为该目录添加了一个新的虚拟主机(以及新的子域)。不要认为这是矫枉过正,在我的情况下是模拟开发服务器的最佳方式。
-
随着时间的推移,我们一直在为所有 Web 开发项目设置虚拟主机。自从编写 OP 以来,它几乎已成为我们的标准做法。
-
这是一个很好的做法。为了使开发站点可供其他人使用,通配符 DNS 就派上用场了。如果您有一个名为 dev01.example,com 的主机,只需将 *.dev01.example.com 指向那里。然后,当您需要项目“foo”的开发站点时,您只需为 foo.dev01.example.com 设置一个虚拟主机,而不必接触 DNS 或主机文件。
-
@timdev : +1 for the wilcard DNS, 它更简单,尤其是当您没有 DNS 服务器时。
标签: php apache .htaccess mod-rewrite