2011-10-03 42 views
2

这里是我的设置: http://example.com/directory/使用重写规则将导致索引文件不可读

我试图加载该文件夹中的网页时隐藏“目录”。我更新的HTML根我的.htaccess文件到这一点:!()(

选项+的FollowSymLinks
RewriteEngine叙述上
的RewriteCond%{REQUEST_URI}目录
重写规则^ $目录/ $ 1

装载目录文件夹中的文件时,这个伟大的工程,但在HTML根文件夹的index.html找不到,除非我把它的目录文件夹中。预先感谢您的帮助。我已经完成了在本网站上重写Q & A的所有内容!

回答

0

您对我的重写规则看起来像是从根目录获取请求并将文件名追加到/ directory /。这将解释为什么根目录中的文件直接不工作,除非也存在于/ directory /文件夹中。

+0

但“目录”已成功隐藏在URL中。 – dwarbi

0

dougajmcdonald解释不够好,但我以另一种方式解释,所以奖金是他:-)

当你请求index.html文件,国防部重写检查您的重写条件:

RewriteCond %{REQUEST_URI} !(.)directory 

因为它的请求URI类似于/index.html,它匹配条件(你的条件:请求URI不应该以/directory开头)
所以,mod_rewrite会将你的URL重写为新的:directory/index.html
这等于自己请求directory/index.html。这就是你应该将该文件放在“目录”目录中的原因。

+0

谢谢!呃...死亡:) 你的意思是htaccess文件应该进入目录,对不对? – dwarbi

+0

@dwarbi否,如果您将**。htaccess **放入**目录**,则只需添加另一个**目录**,如果您想使用根文件夹中的某些文件,则应该为此添加另一个条件! – undone