.htaccess make文件夹作为root用户?

时间:2010-08-19 14:29:50

标签: php apache .htaccess mod-rewrite directory

有没有办法让.htaccess告诉文件夹作为最低级别?我的意思是这个,比如你有一个像这样的文件夹:

/about/
/contact/
/css/
/images/
.htaccess
index.php
header.php

如果他们在/contact/index.php,那么如果我有<a href="../index.php">Home</a>进入主页,它可以正常工作,但如果他们在实际的主页上,它会尝试去目录下。

原因是因为我试图在子文件夹中测试网站。

3 个答案:

答案 0 :(得分:4)

直接回答你的问题,答案是。当读取.htaccess时,路径已经转换为目录。

如果要更改根,则必须在httpd.conf中执行此操作(或将根目录中的所有请求重写到目标目录)。如果您想拥有多个根(在不同的域下),则必须使用虚拟主机(同样,仅在httpd.conf中)。

当您的网站不在根目录中时,您也可以使其工作。

  • 正确使用相对路径(“/contact/index.php”中的“../index.php”和根网页中的“index.php”)。不是一个很好的选择。
  • 使用绝对路径,但在它们前面加上网站相对于服务器根目录的路径。最简单的方法是在您包含在所有脚本中的文件中为此设置常量。

答案 1 :(得分:1)

这有点hacky ......但你可以创建/ home文件夹并在其中放入index.php的副本。同样,这是一个完全黑客攻击,但它应该解决你想要做的事情。

要考虑的另一件事是使用.htaccess中的mod_rewrite来查找/ home并路由到根目录。

答案 2 :(得分:0)

在/contact/index.php上,您可以使用

链接到主index.php
<a href="/index.php">Link</a>