Re: Ошибка 404 при использовании в УРЛе незаэскейпенных спецсимволов, таких как скобки или тире

automatix nginx-forum at nginx.us
Tue Aug 13 18:29:50 UTC 2013


Спасибо за Ваш ответ!

Относительно того, как я хочу -- да, именно так: чтобы собственно раутингом
занимался "хитрый зенд". Когда мне удастся донести до него реквест, он
сможет с этим справиться.

Настройки. Я изменил свои настройки в соответствии с тем, что Вы написали.
Но видимых изменений, к сожалению, нет.

Вот актуальный конфиг:

server {
    listen   80;
    server_name
        foo.qwer.loc
        bar.asdf.loc
        baz.yxcv.loc
    ;
    
    charset utf-8;
    
    if ($host ~ ^(?<project>.+)\.(?<area>.+)\.loc$) {
        #set $project $1;			# already set
        #set $area $2;				# already set
        
        set $folder "$area/$project";
        #set $domain "$project.$area.loc";	# equal to $host
    }

    access_log /var/log/nginx/$area/$project.access.log;
    error_log /var/log/nginx/error.log;

#    add_header Host $server_name;
#    add_header X-Server $hostname;

    gzip on;
    gzip_min_length 1000;
    gzip_types text/plain text/xml application/xml;

    client_max_body_size 25m;

    root /var/www/$folder/public/;

    try_files $uri $uri/ /index.php?$args;
    index index.html index.php;

    location / {
        index index.html index.php;
	sendfile off;
        
        try_files $uri $uri/ @zend;
        index index.php index.html index.htm;
        add_header Cache-Control max-age=1209600;
    }

    # Zugriff auf sensible Dateien verwehren
    location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
        deny all;
    }

    # Die htaccess brauchen wir nicht mehr - und wenn sie noch da is
    # sollte sie nicht angezeigt werden
    location ~ \.htaccess {
        deny all;
    }

    # Die eigentliche RewriteRule für das Zend Framework
    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
    }

    location ~ \.php$ {
        fastcgi_cache        off;
        #fastcgi_pass        127.0.0.1:9001;
        fastcgi_pass         unix:/var/run/php5-fpm.sock;
        fastcgi_read_timeout 6000;
        fastcgi_index        index.php;
        include              fastcgi_params;
        #fastcgi_param        SCRIPT_FILENAME
$document_root$fastcgi_script_name;
        fastcgi_param        APPLICATION_ENV development;
        fastcgi_param        HTTPS $https;

        try_files $uri @zend;
    }

    location @zend {
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        include fastcgi_params;
    }

    location ~ /\. {
        deny all;
    }
}

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



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