Welcome! Log In Create A New Profile

Advanced

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

April 20, 2010 11:33AM
Доброго времени суток!

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

Есть проект, который состоит из кучи директорий. В каждой директории присутсвует 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;
}
}
Subject Author Posted

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

Sergey Sholokh April 20, 2010 11:33AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 308
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready