我试图找到解决方案,但没有找到适合我需要的正确示例。
我在这种类型的路径中有一些图像:/container/2011/08/myfile.ext
.我必须将一些文件从该路径移动到这样的路径:/container/newdir/2011/08/myfile.ext
.唯一的变化是一些文件将移动到路径的“newdir”部分,但路径结构的其余部分是相同的。
我想弄清楚如何创建一个 Apache/htaccess 重写,它将首先检查原始位置中的文件 /container/2011/08/myfile.ext
,如果没有找到,请检查新位置 /container/2011/08/myfile.ext
如果未找到,则返回标准 404。
我找到了进程和其他重定向的解决方案,但不是整个路径。当然,因为容器中的项目是特定于日期的,所以我需要一些可以获取所请求文件路径的东西,如果在请求的位置找不到,请检查新位置,如果在那里找不到,则发送正常的 404。所以,它不仅仅是单一文件类型的故障转移,而是更具动态性的东西。
任何人都可以对我如何处理这个问题有所了解吗?
最佳答案
RewriteCond %{REQUEST_URI} ^/container/\d{4}/\d{2}/.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(container)(/\d{4}/\d{2}/.+)$ $1/newdir$2
如
/container/2011/08/foo.bar
被请求,但不存在,它将重写为 /container/newdir/2011/08/foo.bar
.如果它也不存在那里,它应该导致 404。\d
代表一个数字和{x}
重复 x 次。
关于如果文件不存在,Apache 重写,检查另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6969106/