Mod rewrite mod_rewrite在顶层目录中不工作,但在子目录中正常

Mod rewrite mod_rewrite在顶层目录中不工作,但在子目录中正常,mod-rewrite,apache2,Mod Rewrite,Apache2,我以前在一些目录中使用过mod_rewrite(很少使用),通过为该目录插入一个.htaccess文件,没有问题,现在它可以在那里工作了。但是当我尝试在我的顶级目录中使用它时,什么都没有发生!?!?!但是,该.htaccess文件(顶层1)在其他方面运行良好。我有重定向301和其他各种东西,但没有修改。我正在运行Apache2.0.63,其中加载了mod_重写和mod_代理 作为一个测试用例,我设置了以下4个文件(fileA、html、fileB.html、fileC.html、fileD.ht

我以前在一些目录中使用过mod_rewrite(很少使用),通过为该目录插入一个.htaccess文件,没有问题,现在它可以在那里工作了。但是当我尝试在我的顶级目录中使用它时,什么都没有发生!?!?!但是,该.htaccess文件(顶层1)在其他方面运行良好。我有重定向301和其他各种东西,但没有修改。我正在运行Apache2.0.63,其中加载了mod_重写和mod_代理

作为一个测试用例,我设置了以下4个文件(fileA、html、fileB.html、fileC.html、fileD.html),并将它们放在/test目录中。每个文件都包含相应的字母(例如AAAA、BBBB),因此我可以肯定地识别它们。在/test目录中,我使用创建了一个.htaccess文件

Redirect 301 /test/fileA.html http://www.xyz.com/test/fileB.html
RewriteEngine on
RewriteRule ^fileC\.html$ fileD.html
所有工作都如预期的那样:即使在请求A或C时,也只能看到fileB.html和fileD.html

然后,我将这些文件复制到根html目录并添加到.htaccess目录中:

Options +FollowSymLinks (this was already there)
Redirect 301 /fileA.html http://www.xyz.com/fileB.html
RewriteEngine on
RewriteRule ^fileC\.html$ fileD.html
在.htaccess中没有关于这些文件的其他命令。现在你可以看到fileB.html和fileD.html,但也可以看到fileC.html而不是fileA.html!!!所以mod_重写规则在这里不起作用,重定向也起作用


我在网上搜索关于这一点的想法,但没有找到。有人知道我做错了什么吗?

看起来问题,至少在我的测试用例中,不知何故在我的.htaccess文件中更深层 重新启动发动机 RewriteCond%{HTTP\u USER\u AGENT}!饲料燃烧器 接着是一些我真正想要的重写规则和一个重写引擎关闭——最后是我被误导的(?)努力清除重写条件,以免影响未来可能的重写规则。另外,我发现我最初在模式匹配中包含了开头的“/”,这显然是不正确的


我把所有这些都评论了出来,我的测试用例和我真正想要的,开始按预期工作。从那以后到处玩弄使我相信发动机关闭才是真正的罪魁祸首。不管怎么说,现在一切都在按预期进行。感谢您将我推向正确的方向,希望这对其他人有所帮助。

您确定这不是缓存问题吗?您的浏览器只是向您显示其缓存的fileC.html版本,根本不探测服务器?是的,我清除了缓存并重新缓存以确保。您说“在.htaccess中没有关于这些文件的其他命令”,但这是否意味着那里实际上有其他指令?或者这真的就是您所展示的吗?事实证明,我仍然在其他URL(实际上是URLsI想要的)上激活了更多的mod_重写这似乎是问题的原因。请看下面我的答案。谢谢你把我推向正确的方向。