.htaccess 重定向与前缀模式匹配的文件和文件夹

.htaccess 重定向与前缀模式匹配的文件和文件夹,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试使用.htaccess文件将所有对以4个数字开头的目录(例如2012)中的子文件夹和子文件的请求重定向到另一个目录 比如说, /results/2005-09-19-xxx/* to /event/2005-09-19-xxx/* 及 但不是 /results/anything-else/* 从我看过的文档来看,我认为我需要使用RewriteCond和RewriteRule。我一直在努力寻找一种方法,既匹配最初的4个数字,又在重定向链接中使用它们 我花了很多时间试图找到解决这个问题

我正在尝试使用.htaccess文件将所有对以4个数字开头的目录(例如2012)中的子文件夹和子文件的请求重定向到另一个目录

比如说,

/results/2005-09-19-xxx/* to /event/2005-09-19-xxx/*

但不是

/results/anything-else/*
从我看过的文档来看,我认为我需要使用RewriteCond和RewriteRule。我一直在努力寻找一种方法,既匹配最初的4个数字,又在重定向链接中使用它们


我花了很多时间试图找到解决这个问题的方法,任何帮助或建议都将不胜感激。谢谢。

这应该可以做到:

RewriteRule ^result/([0-9]{4})-([0-9]{2})-([0-9]{2})(.+)$ event/$1-$2-$3$4 [L]
这个模式是:4个数字破折号2个数字破折号2个数字休息,以一种你可以很容易理解的方式编写,如果需要的话,你可以在以后处理。符合模式的所有内容都将被重写,其余部分将正常工作

例如:

result/2012-02-02-abcd.ext
符合模式,并将重写为

event/2012-02-02-abcd.ext

您实际上不需要重写条件,请尝试以下重写规则:

RewriteRule ^results/([0-9]{4}.*)$ /event/$1 [L,QSA]

谢谢你的详细解释,我现在已经开始工作了,干杯。
RewriteRule ^results/([0-9]{4}.*)$ /event/$1 [L,QSA]