.htaccess перенаправить локальный на удаленный на 404 - PullRequest
0 голосов
/ 10 мая 2011

Я делаю всю свою разработку локально на сайтах, которые используют CMS. У нас есть каталог, который используется для хранения загруженного пользователем контента, например изображений (/ assets /). Проблема заключается в том, что при локальной разработке я не хочу, чтобы все загруженные файлы с рабочего сайта на моем компьютере, поэтому я оставляю этот каталог пустым, и все HTTP-запросы на файлы в каталоге / assets / получают 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

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Используйте ваши правила .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/...

кстати вам действительно нужно повысить коэффициент принятия, иначе вы можете не так много ответов здесь.

0 голосов
/ 10 мая 2011

Всегда ли / assets на другом сайте или только если файлы не доступны локально?

Причина, по которой я спрашиваю, состоит в том, что может быть проще всегда просто перенаправить just / assets в live, используя следующие (не проверенные) правила в httpd.conf / .htaccess на вашем сервере разработки:

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