如何在Apache中设置本地文档根目录?

如何在Apache中设置本地文档根目录?,apache,Apache,这就是我的目录结构 / /test index.php blah.php blah.php 因此,在/test/index.php中,我有这样一个链接 <a href="/blah.php">Link</a> 但是我希望它链接到/test/blah.php,而不是根目录中的blah.php。基本上,我想设置一个本地文档根。可以使用.htaccess或在httpd.conf中设置此选项吗?将其添加到httpd.conf中,或者最好将其放在virtua

这就是我的目录结构

/
/test
    index.php
    blah.php
blah.php
因此,在
/test/index.php
中,我有这样一个链接

<a href="/blah.php">Link</a>


但是我希望它链接到
/test/blah.php
,而不是根目录中的
blah.php
。基本上,我想设置一个本地文档根。可以使用
.htaccess
或在
httpd.conf
中设置此选项吗?

将其添加到httpd.conf中,或者最好将其放在virtualhost目录中

NameVirtualHost *:80

<VirtualHost *:80>
ServerName blah.localhost
DocumentRoot C:\web\test
</VirtualHost>

重新启动apache并转到浏览器中的blah.localhost。

如果
/test/index.php
上的
a
标记的
href
设置为
/blah.php
,则浏览器会将其解释为指向文档根目录中的文件。因此,如果不更改生成
href
属性的方式,就无法实现您想要的

对此,您有两种选择:

  • 您可以省略正斜杠来生成相对于当前URL而不是文档根的链接。
    /test/index.php
    中指向
    blah.php
    的链接将被解释为
    /test/blah.php

  • 您可以编写一些自定义代码来生成链接。例如,您可以使用一个函数
    my_special_link($link)
    ,它接收
    blah.php
    ,并在当前文件的目录前添加前缀


您想创建/测试整个网站的根目录,还是只创建/测试该目录中页面上的链接根目录?只创建/测试该目录中页面上的链接根目录我想我没有问我想问什么。您是否试图在/test目录中创建一个自包含的站点,而不使用/test之外的页面?如果是这样,梅德尔的解决方案可能会奏效。否则,除了我在回答中提到的选项之外,我看不到任何选项。
127.0.0.1 blah.localhost