2011-05-10 13 views
0

我盡我的發展本地上使用的CMS網站。我們有一個用於存儲用戶上傳內容的目錄,例如圖像(/ assets /)。問題是,本地開發的時候,我不希望所有從我的機器上生產現場上傳的文件,所以我保留這個目錄爲空,和所有在/資產/目錄下的文件的HTTP請求中獲得404'編輯。的.htaccess着本地到遠程的404

什麼將是巨大的,如果我能在我的.htaccess重寫規則檢測的404,並轉發到生產現場的外部URL從那裏裝入資產。邏輯將是:

Request localhost/somesite/assets/foo.jpg 
200 response ? send the local file /somesite/assets/foo.jpg 
404 ? forward to http://www.productionsite.com/assets/foo.jpg 

這可能嗎?

+0

對不起,格式沒有來過。邏輯,如果不明確,應該是,如果HTTP響應是200,則將本地文件發送到瀏覽器。如果是404,請訪問http://www.productionsite.com/assets/the_requested_file.jpg – 2011-05-10 16:01:44

回答

1

有你的.htaccess的規則是這樣的:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(assets/.*)$ http://www.productionsite.com/$1 [R,L,NC] 

這將確保任何請求匹配/assets/不存在你的本地網絡服務器將外部重定向http://www.productionsite.com/assets/...

btw你應該真的提高你的接受率,否則你可能沒有太多的答案在這裏。

0

是/總資產在其他網站上,或者只在文件本地不可?

的原因,我問的是,它可能是簡單的總是重定向你的開發服務器上在httpd.conf /只的.htaccess /資產到現場與以下(未經測試)規則:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond $1 ^(assets) [NC] 
RewriteRule ^(.*)$ http://www.livesite.com/$1 [L] 
+0

看起來確實不錯,但是「輸入代碼在這裏?」理想情況下,我們只能看遠程如果本地文件404,因爲有一個機會,有人可以在本地上傳的東西,還沒有在遠程服務器上。 – 2011-05-10 16:57:16

+0

已編輯!那是我成爲新手! – 2011-05-10 17:05:40

+0

另一個想法,是否可以爲這些請求使用squid代理?我沒有現成的答案,但是,我喜歡你的工作流想法,並希望實現類似的東西。當然,一些代理程序可以做到這一點? – 2011-05-10 17:11:21