我正在尝试使用.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个数字,并仍然在重定向的链接中使用它们。
我花了很多时间试图找到解决这个问题的方法,我们非常感谢任何帮助或建议。谢谢。
答案 0 :(得分:1)
你真的不需要重写条件,试试这个重写规则:
RewriteRule ^results/([0-9]{4}.*)$ /event/$1 [L,QSA]
答案 1 :(得分: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