2

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

例如,

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

/results/2005-09-20-file.ext to /event/2005-09-20-file.ext 

但不是

/results/anything-else/*

从我查看的文档中,我相信我需要使用 RewriteCond 和 RewriteRule。我一直在努力寻找一种方法来匹配最初的 4 个数字,并且仍然在重定向的链接中使用它们。

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

4

2 回答 2

1

你真的不需要重写条件,试试这个重写规则:

RewriteRule ^results/([0-9]{4}.*)$ /event/$1 [L,QSA]
于 2012-08-18T20:10:02.500 回答
0

这应该可以解决问题:

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
于 2012-08-18T19:50:04.980 回答