Apache .htaccess、mod_rewrite和子目录

Apache .htaccess、mod_rewrite和子目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,关于.htaccess文档,将.htaccess文件放在目录中会影响该目录和所有子目录。但我很难让它发挥作用: 我必须将文件alice.html和bob.html(只打印“alice”和“bob”)和这个.htaccess放在同一个目录中(/tmp/rewrite): 当我尝试访问/tmp/rewrite/alice.html时,我得到了“Bob”-很好 但是当我将相同的html文件放在子目录/tmp/rewrite/sub中并尝试访问/tmp/rewrite/sub/alice.html时,我

关于.htaccess文档,将.htaccess文件放在目录中会影响该目录和所有子目录。但我很难让它发挥作用:

我必须将文件alice.html和bob.html(只打印“alice”和“bob”)和这个.htaccess放在同一个目录中(/tmp/rewrite):

当我尝试访问/tmp/rewrite/alice.html时,我得到了“Bob”-很好

但是当我将相同的html文件放在子目录/tmp/rewrite/sub中并尝试访问/tmp/rewrite/sub/alice.html时,我得到了“alice”


我错过了什么?

这种行为很正常。。您告诉apache将alice.html改写为bob.html,以防它出现在这些规则定义的“根”上。如果要将规则应用于其他文件夹,则必须应用多个规则,如下所示:

RewriteRule ^/sub/alice.html$ /sub/bob.html

如果URL路径与物理路径相同,则不需要
RewriteBase
指令。不使用
RewriteBase
@Gumbo尝试一下:然后我得到404错误。
RewriteRule ^/sub/alice.html$ /sub/bob.html