.htaccess 如何始终使用htaccess重定向到子文件夹

.htaccess 如何始终使用htaccess重定向到子文件夹,.htaccess,redirect,.htaccess,Redirect,我想将正在查看索引而不是其他文件的访问者重定向到每个Condition中的子文件夹。目前,我正在.htaccess文件中使用以下代码: <IfModule mod_rewrite.c> RewriteRule ^$ /dir [L,R=301] </IfModule> 这很好,但当我们在sub上使用它时,它的工作原理如下: http://www.domain.com/sub => http://www.domain.com/dir 这意味着它向上移动一级

我想将正在查看索引而不是其他文件的访问者重定向到每个Condition中的子文件夹。目前,我正在.htaccess文件中使用以下代码:

<IfModule mod_rewrite.c>
    RewriteRule ^$ /dir [L,R=301]
</IfModule>
这很好,但当我们在sub上使用它时,它的工作原理如下:

http://www.domain.com/sub => http://www.domain.com/dir
这意味着它向上移动一级,然后定位为dir,这就是失败的原因。

使用该选项:

# Change in subfolder:
RewriteBase /sub/
RewriteRule ^$ dir [L,R=301]
在每个子文件夹的root.htaccess中:

RewriteRule ^([^/]+)/$ $1/dir/ [L,R=301]

它不起作用。实际上,它会重定向到域名后面的绝对路径。现在呢?我添加RewriteBase以避免清除缓存或尝试使用其他浏览器!sub就是一个例子,我指的是每个目录。脚本本身位于子文件夹中。。。更改目录中的名称。或者,您可以对root用户使用一个代码。我补充说。
RewriteRule ^([^/]+)/$ $1/dir/ [L,R=301]