Apache rewriterule将文件夹重定向到子文件夹而不循环

Big*_*Mac 3 apache mod-rewrite redirect loops

长话短说,我正在尝试最后3个小时来执行似乎是基本的URL重定向.所有对mysite.com/folder的网站请求都应该重定向到mysite.com/folder/subfolder/.重定向应该"仅"执行!如果用户输入/文件夹.如果他访问/文件夹/文件,则不会发生重定向.

我尝试了以下但没有成功,所有尝试都会导致无限循环:

RewriteRule ^/folder$ /folder/subfolder/ [R]
Redirect 301 /folder /folder/subfolder/
Run Code Online (Sandbox Code Playgroud)

我无法访问vhost文件,我也不允许使用php或类似的"解决方法"来执行此操作.无论哪种方式,htaccess应该是最好的地方.任何人都可以对我做错了吗?

reg*_*ero 9

重定向使用前缀模式匹配,因此您应该将RedirectMatch与正则表达式一起使用,这样您将只匹配目录访问而不是子目录中的文件访问.你不需要rewriteRule,它正在做同样的事情.

这应该工作:

RedirectMatch ^/folder/$ /folder/subfolder/
Run Code Online (Sandbox Code Playgroud)

请注意,您使用了301重定向,301表示永久性,因此您可能需要在测试新规则之前关闭浏览器,浏览器已记住重定向永久答案,并且在您关闭它之前不会再次询问.