Если я правильно понял задачу, то так?
location / {
root /var/www/cache/data/www/имясайта/templates/имяшаблона/;
error_page 404 =200 /var/www/system/data/www/system.com/templates/;
}
8 июля 2011 г. 17:24 пользователь Userolog <nginx-forum@nginx.us> написал:
> Программисты тут задачку задали. Есть
> движок, шаблоны html лежат в
> /var/www/system/data/www/system.com/templates/
>
> и их несколько и с разными именами,
> типа
>
> /templates/odin/
> /templates/dva/
>
> и так далее.
>
> И у всех этих шаблонов есть шапка -
> header.jpg, которая отдаётся из папок
> /var/www/system/data/www/system.com/templates/имяшаблона/header.jpghttp://system.com/templates/%D0%B8%D0%BC%D1%8F%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0/header.jpg
>
> Движок позволяет редактировать шапку
> сайта, но загружает в каталог
> /var/www/cache/data/www/имясайта/templates/имяшаблона/
>
> Где имя сайта - любой домен
> (мультисайтовый движок).
>
> Таким образом, нужно организовать
> отдачу nginx так, чтобы если шапка
> существует в
> /var/www/cache/data/www/имясайта/templates/имяшаблона/,
> то берётся оттуда. Если нет, то ищется в
> /var/www/system/data/www/system.com/templates/.
>
> Вопрос: как реализовать?
>
> Конфиг nginx
>
> server {
> listen 127.0.0.1:80;
> server_name system.com www.system.com;
> rewrite ^(/manager/.*)$ https://$host$1 permanent;
> error_page 404 = @fallback;
>
> #files cache
> location / {
> root /var/www/cache/data/www/$host_without_www;
> try_files $uri @backend;
> }
> #end for cache folder
> location /templates/
> {
> root /var/www/;
> try_files /cache/data/www/$host/templates$uri
> /system/data/www/$host/templates$uri @dummy;
> }
> location @dummy { return 444; }
>
> location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
> proxy_pass http://127.0.0.1:8080;
> proxy_redirect http://system.com:8080/ /;
> proxy_set_header Host $host;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Real-IP $remote_addr;
> }
> set $host_without_www $host;
> if ($host ~* www\.(.*)) {
> set $host_without_www $1;
> }
> location ~ ^/$ {
> rewrite .* /index.html;
> }
>
> location @backend {
> proxy_pass http://127.0.0.1:8080;
> proxy_redirect http://system.com:8080/ /;
> proxy_set_header Host $host;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Real-IP $remote_addr;
> }
>
>
> location ~*
> ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
> root /var/www/system/data/www/system.com;
> access_log /var/www/httpd-logs/system.com.access.log;
>
> location ~ /files {
> root /var/www/cache/data/www/$host_without_www;
> }
>
> }
>
> location @fallback {
> proxy_pass http://127.0.0.1:8080;
> proxy_set_header Host $host;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Real-IP $remote_addr;
> }
> }
>
>
> Версия 0.7.67
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,212026,212026#msg-212026
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru