如何使用htaccess将子文件夹中的所有文件重定向到根目录
how to redirect all files in a subfolder to root directory with htaccess
我有一个类似 www.example.com/comments/a/word1.html
的目录 我从 link 中删除了 comments/a/
部分和 .html
以及 htaccess。在 a
文件夹下,我有很多文件,如 word1.html、word2.html、word3.html,我想像这样重定向所有这些文件:
www.example.com/word1
www.example.com/word2
www.example.com/word3
我正在使用这个 .htaccess 代码:
RewriteEngine on
RewriteRule ^/?comments/a/(.*)(/|\.html)?$ / [R=301,L]
RequestCond %{DOCUMENT_ROOT}/comments/a%{REQUEST_URI}.html -f
RewriteRule ^/?(.*)/? /comments/a/.html [END]
但我收到错误消息“找不到 404 页面,无法在此服务器上找到所请求的资源!”。在这种情况下我能做什么?有什么方法可以将 www.example.com/comments/a/word1.html
word2-3-4 等也重定向到 www.example.com/word1
作为我研究的结果,我找到了这样的解决方案:
##Rewrite non /comments/a/ links internally start##
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/comments/a/.html -f
RewriteRule ^/?([^.?]+)$/?$ comments/a/.html [L,NC]
##Rewrite non /comments/a/ links internally end##
这段代码对我来说很有魅力。
我有一个类似 www.example.com/comments/a/word1.html
的目录 我从 link 中删除了 comments/a/
部分和 .html
以及 htaccess。在 a
文件夹下,我有很多文件,如 word1.html、word2.html、word3.html,我想像这样重定向所有这些文件:
www.example.com/word1
www.example.com/word2
www.example.com/word3
我正在使用这个 .htaccess 代码:
RewriteEngine on
RewriteRule ^/?comments/a/(.*)(/|\.html)?$ / [R=301,L]
RequestCond %{DOCUMENT_ROOT}/comments/a%{REQUEST_URI}.html -f
RewriteRule ^/?(.*)/? /comments/a/.html [END]
但我收到错误消息“找不到 404 页面,无法在此服务器上找到所请求的资源!”。在这种情况下我能做什么?有什么方法可以将 www.example.com/comments/a/word1.html
word2-3-4 等也重定向到 www.example.com/word1
作为我研究的结果,我找到了这样的解决方案:
##Rewrite non /comments/a/ links internally start##
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/comments/a/.html -f
RewriteRule ^/?([^.?]+)$/?$ comments/a/.html [L,NC]
##Rewrite non /comments/a/ links internally end##
这段代码对我来说很有魅力。