这是我的设置: http://example.com/directory/
我在该文件夹中加载页面时试图隐藏“目录”。我将html根目录中的.htaccess文件更新为:
选项+ FollowSymLinks
重写引擎 RewriteCond%{REQUEST_URI}!(。)目录
RewriteRule ^(。)$ directory / $ 1
这在目录文件夹中加载文件时效果很好,但是除非我把它放在目录文件夹中,否则找不到html根文件夹中的index.html。在此先感谢您的帮助。我已经在这个网站上重复了所有重写Q& A!
答案 0 :(得分:0)
您的重写规则就像是从根目录中接收请求并将文件名附加到/ directory /。这可以解释为什么root中的文件不能正常工作,除非还存在于/ directory /文件夹中。
答案 1 :(得分:0)
dougajmcdonald解释得足够但我用另一种方式解释,所以赏金是他的:-)
当您请求index.html
文件时,mod-rewrite会检查您的重写条件:
RewriteCond %{REQUEST_URI} !(.)directory
因为它的请求URI类似于/index.html
并且它与条件匹配(您的条件:请求URI不应该以{{1}}开头)
因此,mod_rewrite会将您的网址重写为新网址:/directory
这等于自己请求directory/index.html
。这就是你应该把这个文件放在“目录”目录中的原因。