0

我在使用 CMS 的网站上进行本地开发。我们有一个目录,用于存储用户上传的内容,例如图像 (/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

这可能吗?

4

2 回答 2

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/...

顺便说一句,你真的应该提高你的接受率,否则你可能在这里没有多少答案。

于 2011-05-10T17:09:30.137 回答
0

/assets 是否总是在另一个站点上,或者仅当文件在本地不可用时?

我问的原因是,在您的开发服务器上使用 httpd.conf/.htaccess 中的以下(未经测试的)规则始终将 /assets 重定向到实时可能更简单:

Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 ^(assets) [NC]
RewriteRule ^(.*)$ http://www.livesite.com/$1 [L]
于 2011-05-10T16:54:24.917 回答