【问题标题】:.htaccess project root.htaccess 项目根目录
【发布时间】:2012-12-07 21:39:55
【问题描述】:

我正在本地处理很多项目。我已将我的 apache 根目录设置为引用包含我所有项目的文件夹,所以 localhost 只需让我到达那里。

在 localhost 的子文件夹内(即 root)我想添加一个重写规则,所以 / 指的是 PROJECT 根目录,而不是 localhost。

我的结构示例:

localhost/a-very-nice-projekt/

在项目内部,我想像这样src="/img/picture.jpg" 文件链接到根目录。无需更改链接即可轻松移动文件夹。它还可以使用我的导航栏和标题的 php 包含,因为链接始终指向项目根目录。

尝试了很多谷歌搜索和代码,但我觉得我有点错...

【问题讨论】:

  • ¿您使用的是什么本地服务器?我问是因为它们中的大多数都以您描述的方式使用文件夹,因此您可能不需要修改 .htaccess,只需创建文件夹即可。
  • 我正在使用 Apache!当我查看我的 error_log 时,我清楚地可以看到 apache 在错误的文件夹中查找 [Fri Dec 07 14:17:31 2012] [error] [client 192.168.0.12] 文件不存在:/Users/Anton/Sites/ img,推荐人:192.168.0.12/nyanovium/portfolio.php

标签: .htaccess


【解决方案1】:

我不相信你真的可以做你想做的事,至少通过.htaccess。在您的情况下 localhost 是域,链接中的前导斜杠告诉浏览器从相对于域的路径中获取资源。不同文件夹中的不同规则并不会真正影响这一点。

您最好的选择可能是在不同的端口上创建各种虚拟主机,它们将充当单独的站点。为您的 httpd.conf 文件中的每个项目创建一个虚拟主机。

Listen 8081
NameVirtualHost *:8081
<VirtualHost *:8081>
    DocumentRoot "C:\Path\to\project"
    <Directory "C:\Path\to\project">
        DirectoryIndex index.php
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

然后,该项目将在您的浏览器中以http://localhost:8081/ 的身份访问。所有路径都将按预期工作,您应该一切顺利。

【讨论】:

  • 我会将其标记为最终答案,因为解决方案是正确的方法。不管是谁,它都不适合我,但我相信这与我在 Mac OSX 中的 localhost-config 有关。如果有人有想法,我正在听。将为 Mac OSX 做一些谷歌搜索...
猜你喜欢
  • 2013-10-02
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
相关资源
最近更新 更多