Apache 文件夹重定向到子文件夹,而不会使对子文件夹的直接访问无效

Apache folder redirect to a subfolder, without invalidating direct access to the subfolders

提问人:Resiel 提问时间:11/5/2023 最后编辑:Resiel 更新时间:11/5/2023 访问量:39

问:

我有这个目录结构:

www
-- subfolder
---- .htaccess
---- folder1
-------- file1.jpg
---- folder2
-------- file2.jpg
---- folder3
-------- file3.jpg

我应该在“.htaccess”文件中输入什么,以便将“”中的所有文件请求重定向到“”路径,而不会阻止正确和直接访问“”,“”和“”中的文件?(就好像子文件夹中有指向 folder3 中文件的符号链接一样)subfolder/subfolder/folder3subfolder/folder1subfolder/folder2subfolder/folder3

预期结果:

www.example.com/subfolder/folder1/file1.jpg --> www.example.com/subfolder/folder1/file1.jpg
www.example.com/subfolder/folder2/file2.jpg --> www.example.com/subfolder/folder2/file2.jpg
www.example.com/subfolder/folder3/file3.jpg --> www.example.com/subfolder/folder3/file3.jpg
www.example.com/subfolder/file3.jpg --> www.example.com/subfolder/folder3/file3.jpg

解决方案 “” 和 “” 不起作用RewriteRule ^(^\/+)$ /folder3/$1 [L]RedirectMatch ^(^\/+)$ /folder3/$1

编辑(解决方案):

我终于用命令解决了这个问题:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ folder3/$1 [L]

虽然我仍然不明白为什么以前的解决方案不起作用。

正则表达式 Apache

评论


答: 暂无答案