ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Поддиректории с index.php и ст атикой в них.


  • To: nginx-ru@xxxxxxxxx
  • Subject: Поддиректории с index.php и ст атикой в них.
  • From: "Sergey Sholokh" <nginx-forum@xxxxxxxx>
  • Date: Tue, 20 Apr 2010 11:33:55 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=6XhSBXazHySgUmoCa9iQNag9kDe3skp9vH7Ts0c47Eo=; b=dEbw+ZJQtc++901L+kxZE2zBXumte+54bhI3AIU5gc6hbjkOixW2RiIHwgqVXPWfqF4Dbq7yHlOv5LxbxB8ZOUGos/n+j37ziL00oBaTvPkaZE/uZYVrrQ9mbGxOzAYN;

Доброго времени суток!

Подскажите, пожалуйста, что я не так делаю.

Есть проект, который состоит из кучи директорий. В каждой  директории 
присутсвует index.php и каталоги со статикой, которые вызываются из индекса 
(пути относительные).
Проблема в том, что если не прописывать locaton для каждой директории и в нем 
index, то при заходе в директорию index.php вызывается (внутренний редирект) , 
но вот пути к статике в таком случае неправильные, от центрального корня. Если 
же вызвать /directory/index.php - то все ок.
C прописанными location dir1 и dir2 все работает, но директорий много и все 
прописывать не очень хотелось бы.
Возможно, есть правильный путь решить эту проблему, не прописывая все множество 
директорий как location.
Чтение док пока просветления не принесло.

Пример конфига:

server {
        listen 1.1.1.1:80 default backlog=4096 sndbuf=32k rcvbuf=16k;
        server_name some.domain www.some.domain;
        client_max_body_size 16M;
        client_header_buffer_size 16k;
        large_client_header_buffers 16 256k;
        set $root_dir "/var/www/Site";
        root $root_dir;
        index index.php;
        fastcgi_index index.php;
        access_log /var/log/nginx/some_access.log main;
        error_log /var/log/nginx/some_error.log;

location /dir1 {
        root $root_dir;
        try_files $uri $uri/ =404;
        index index.php;
        }

location /dir2 {
        root $root_dir;
        try_files $uri $uri/ =404;
        index index.php;
        }

location / {
        root $root_dir;
        try_files $uri $uri/ =404;
        if ($request_method = GET) {
                rewrite ^/(.*)/$ /$1 permanent; }
        if (-d $request_filename) {
                rewrite ^(.*[^/])$ $1/ break; }
        }

location = /index.php {
        if ($request_uri = /index.php) {
                rewrite ^ http://$host? permanent; }
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        }

location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|js|swf|pdf)$ {
        root $root_dir;
        expires 7d;
        add_header Cache-Control public;
        access_log off;
        }

location ~* \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        }
}

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


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.