2013-08-22 41 views
1

我有一個網站,其中包含root中的一些.zip文件和一個名爲/files/的文件夾,其中包含其他.zip文件。Apache mod將我的根目錄下的所有.zip文件重寫爲另一個域

我所有這些文件移動到另一臺服務器,但我不想打破我聯繫,所以我需要重定向.zip文件到達我root和我/files/文件夾到另一個子域的請求。我可能要在未來具有含.zip文件在我的服務器上不同的文件夾,所以我需要重定向只

mydomain.com/*.zip 
mydomain.com/files/*.zip 

我寫的規則/files/和它運作良好,(是從該文件夾,我需要所有類型對現在的文件,從根本上唯一.zip文件):

RewriteRule ^files/(.*) http://myotherdomain.com/$1 [QSA,R=301] 

但我堅持做同樣與.zip文件到達我的域名的root所有請求......什麼建議嗎?

+0

您是否移動在根目錄下的zip文件以及文件文件夾到您的新域的根?或者,你是否保持相同的文件夾結構? –

+0

對不起,我忘了說明,你是對的!我將所有內容都移到了新域的同一個文件夾中。 – opoloko

回答

3
  • 如果你感動了所有zip文件到您的新域的根使用

    RewriteRule ^.*?/?([^/]+\.zip)$ http://myotherdomain.com/$1 [R=301,NC,L] 
    
  • 如果你保持相同的文件夾結構(即要移動/files/*.zipnewdomain.com/files/*.zip )使用

    RewriteRule ^(.+\.zip)$ http://myotherdomain.com/$1 [R=301,NC,L] 
    
  • 記住,在頂部/files/下重定向一切你當前規則。

    RewriteRule ^files/(.*) http://myotherdomain.com/$1 [R=301,NC,L] 
    

    然後,當你只想在它前面#重定向/files/*.zip簡單的將其關閉。

[QSA]不是必需的,因爲我們在這裏沒有觸及查詢字符串。

編輯

好吧,重定向只

mydomain.com/*.zip 
mydomain.com/files/*.zip 

使用以下規則

RewriteRule ^(?:files/)?([^/]+\.zip)$ http://myotherdomain.com/$1 [R=301,NC,L] 
+0

我將所有文件移動到新域的根目錄,所以我使用了第一條規則RewriteRule ^。* /?([^ /] + \。zip)$ http://myotherdomain.com/$1 [R = 301,NC ,L]但它不工作... firstdomain.com/File2.zip變成newdomain.com/2.zip,所以「文件」一詞被剝離.. ?? – opoloko

+0

啊,它以'^。*?/?'開頭。在'/'之前注意一個額外的'?'。請再試一次。 –

+0

這是有效的,我發現另一種方式,問題是,它也適用於其他文件夾!所以如果我打電話http://mydomain.com/anotherfolder/file。壓縮它重定向到新的域,我希望它只對.zip文件在「文件」文件夾的根或.zip文件中執行。所有其他子文件夾中的所有其他.zip文件都不得重定向...並且我真的失去了如何做到這一點。 – opoloko

相關問題