Re: Помогите переписать .htaccess

maxya nginx-forum на nginx.us
Ср Сен 1 02:23:55 MSD 2010


Путем научного тыка обнаружил
конфликт
[code]
location  ^~ /lin/ {
        rewrite
^/lin/line_(.*)_beg_(.*)_wmax_(.*)_wcur_(.*)_wmin(.*)\.jpg$
/lin/img.php?line=$1&beg=$2&wmax=$3&wcur=$4&wmin=$5 break;
}
[/code]

И вот этого.
[code]
 if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php?q=$1 last;
    }
[/code]

Сайт работает под управлением Drupal и
второй кусок кода нужен для корректной
работы чистых ссылок, однако, он не даёт
выполняться 1й части кода. 
Обе части нужны, но 1-я должна
выполняться только в sitename/lin/ первой. 
Посоветуйте как быть? 

Полный конфиг:

[code]
server {
    listen   80;
    server_name  www.mysite.ru;
    rewrite ^/(.*) http://mysite.ru$1 permanent;
}

server {
    listen 80;
    server_name mysite.ru;

        access_log  /var/log/nginx/maxya.access.log;
        error_log  /var/log/nginx/maxya.error.log ;

    root /var/www/maxya;
    index index.php;
    #charset utf-8;
    gzip_static on;
    gzip on;

    # some images have no mime type
    default_type image/jpeg;

    location  ^~ /lin/ {
        rewrite
^/lin/line_(.*)_beg_(.*)_wmax_(.*)_wcur_(.*)_wmin(.*)\.jpg$
/lin/img.php?line=$1&beg=$2&wmax=$3&wcur=$4&wmin=$5 break;
        fastcgi_pass 127.0.0.1:9000;
            #fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  
$document_root$fastcgi_script_name;
            fastcgi_param  QUERY_STRING     $query_string;
            fastcgi_param  REQUEST_METHOD   $request_method;
            fastcgi_param  CONTENT_TYPE     $content_type;
            fastcgi_param  CONTENT_LENGTH   $content_length;
    }
#без этого не работают "чистые ссылки"
    #if (!-e $request_filename) {
        #rewrite ^/(.*)$ /index.php?q=$1 last;
    #}

    error_page 404 index.php;

    # hide protected files
    location ~*
.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(.php)?|xtmpl)$|^(code-style.pl|Entries.*|Repository|Root|Tag|Template)$
{
      deny all;
    }

    location ~* imagecache {
    access_log off;
    expires 30d;
    try_files $uri @drupal;
    }

    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|htm|html)$ {
        access_log        off;
        expires           30d;
    }

    location @drupal {
        index index.php;
        if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php?q=$1 last;
        }
    }
    error_page 405 = @drupal;

location ~ ^.+.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  
$document_root$fastcgi_script_name;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
    }

}

[/code]

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,125753,125823#msg-125823




Подробная информация о списке рассылки nginx-ru