Url rewriting 是否可以创建条件重写规则

Url rewriting 是否可以创建条件重写规则,url-rewriting,rewrite,Url Rewriting,Rewrite,这就是我的困境 我继承了网站上的支持,并负责将其转移到新主机 我遇到的一个问题是,有一个上载文件夹,其中包含93000多个文件。我必须根据文件的日期将这些文件移动到“年\月”目录结构中,同时保持外部链接的活动状态 撇开修改数据库信息(与单个文件相关的行)以反映新结构的复杂性不谈,创建条件重写语句是可能的 我的意思是,如果请求查找该目录中的文件,特别是根“Uploads”文件夹中的文件,则会有一个反映新位置的相应重写规则列表 有这么多规则会有严重的性能问题吗 我想我可以进一步简化它,而不是将现有文

这就是我的困境

我继承了网站上的支持,并负责将其转移到新主机

我遇到的一个问题是,有一个上载文件夹,其中包含93000多个文件。我必须根据文件的日期将这些文件移动到“年\月”目录结构中,同时保持外部链接的活动状态

撇开修改数据库信息(与单个文件相关的行)以反映新结构的复杂性不谈,创建条件重写语句是可能的

我的意思是,如果请求查找该目录中的文件,特别是根“Uploads”文件夹中的文件,则会有一个反映新位置的相应重写规则列表

有这么多规则会有严重的性能问题吗


我想我可以进一步简化它,而不是将现有文件放入“年/月”结构中,我可以根据文件的第一个字符将它们放入字母数字结构中,即以符号开头的文件将全部放入“排序\符号”文件夹中,以1开头的文件将放在“Sorted\1”文件夹中,依此类推。

我假设您使用的是Apache

是,可以使用
RewriteCond

有关更多信息,请参见此处:

如果你对如何设置它是明智的,它不应该对性能有明显的影响。 例如,如果您可以提供的第一个重写条件可以消除所有不会被重写的文件,那么它应该';我不能创造一个巨大的性能冲击

例如


仅对uri以mydir开头的请求执行重写

问题将继续,新文件将分为年和月目录。因此,简单地检查根目录下的文件是不行的。我能告诉它只查找在根目录中的请求文件吗?是的,你可以,这只是一个正确使用正则表达式的例子。类似于
^/uploads/(^/)*/$
的东西可能不起作用,但类似的东西可能会起作用。谢谢,我会试试的。我只是想知道什么是最好的,我想我认为,正如你提到的,是最简单的方法。
RewriteCond %{REQUEST_URI} ^/mydir