2013-01-08 34 views
0

這是我的困境。是否可以創建條件重寫規則

我在網站上繼承了支持,並且負責將它移到新的主機上。

我遇到的一個問題是,上傳文件夾中有超過93,000個文件。我必須根據文件的日期將這些文件移動到「Year \ Month」目錄結構中,同時保持外部鏈接存活。拋開修改數據庫信息的複雜性,爲了反映新的結構,可以創建有條件的重寫語句。

我的意思是,如果請求在該目錄中找到一個文件,特別是在根'Uploads'文件夾中,那麼會有一個反映新位置的對應ReWrite規則列表。

會有這麼多的規則有一個嚴重的性能問題?

我想我可以進一步簡化它,而不是把現有的文件放入'Year/Month'結構中,我可以根據文件的第一個字符將它們放入字母數字結構中,即以符號開頭的文件全部進入'Sorted \ Symbols'文件夾中,以1開頭的文件將進入'Sorted \ 1'文件夾中,依此類推。

回答

0

我要去你使用Apache

承擔

是有可能使用RewriteCond

這裏看到更多的信息,以創建條件重寫規則:http://wiki.apache.org/httpd/RewriteCond

如果你是理智的對待你如何設置它,它不應該對性能有明顯的影響。 例如,如果您可以提供的第一個重寫條件可以消除所有不會被重寫的文件,那麼它不應該創建大的性能命中。

E.g.

RewriteCond %{REQUEST_URI} ^/mydir 

只有URI開始MYDIR

+0

有這個問題是前進的新文件將被分爲年度和月份目錄上的請求進行重寫。因此,簡單地檢查根目錄下的文件是不行的。我可以告訴它僅查找僅位於/上傳的請求文件嗎? – Anthony

+0

是的,你可以這只是一個得到正確的正則表達式的情況。像'^/uploads /(^ /)*/$'這可能不會工作,但類似的可能。 – cowls

+0

謝謝,我會放棄它。我只想得到一些什麼是最好的想法,並且我猜你認爲我認爲是最簡單的路線。 – Anthony