我在使用CMS的网站上进行本地开发。我们有一个目录,用于存储用户上传的内容,例如images(/ assets /)。问题是,在本地开发时,我不希望所有上传的文件都来自我的机器上的生产站点,因此我将此目录保留为空,并且/ assets /目录中的所有文件HTTP请求都获得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 :(得分: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 你应该真的提高你的录取率,否则你可能没有多少答案。
答案 1 :(得分:0)
/资产是否始终在另一个站点上,或者仅当文件在本地不可用时?
我问的原因是,在开发服务器上的httpd.conf / .htaccess中使用以下(未经测试的)规则始终将/ assets重定向到live可能更简单:
Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 ^(assets) [NC]
RewriteRule ^(.*)$ http://www.livesite.com/$1 [L]