Динамическая корневая папка не работает для * .php nginx

Когда я пытаюсь просмотреть Http: //exmaple.dev.local/test.html Nginx обслуживает статический файл ‘test.html’, но когда я пытаюсь «index.php», он не обслуживает его.
Что я делаю не так?

Ошибка 404 «Не указан входной файл». и журнал говорит:

test location: ~ "\.php$"using configuration "\.php$"http cl:-1 max:1048576
rewrite phase: 3
post rewrite phase: 4
generic phase: 5
generic phase: 6
generic phase: 7
access phase: 8
access phase: 9
post access phase: 10
try files phase: 11
http init upstream, client timer: 0
epoll add event: fd:13 op:3 ev:80000005
http script copy: "/var/www/"http script capture: ""http script copy: "/webroot/"http script copy: "/var/www/"http script capture: ""http script copy: "/webroot/"http script copy: "QUERY_STRING"fastcgi param: "QUERY_STRING: "http script copy: "REQUEST_METHOD"http script var: "GET"fastcgi param: "REQUEST_METHOD: GET"http script copy: "CONTENT_TYPE"fastcgi param: "CONTENT_TYPE: "http script copy: "CONTENT_LENGTH"fastcgi param: "CONTENT_LENGTH: "http script copy: "/var/www/"http script capture: ""http script copy: "/webroot/"http script copy: "SCRIPT_FILENAME"http script var: "/var/www//webroot/"fastcgi param: "SCRIPT_FILENAME: /var/www//webroot/"http script copy: "SCRIPT_NAME"http script var: "/index.php"fastcgi param: "SCRIPT_NAME: /index.php"

Мой nginx conf это:

server {
listen 80;
server_name "~^(.*)\.dev\.local$";

#if directory doesn't exist
if (!-d /var/www/$1/webroot/) {
rewrite . http://dev.local redirect;
}
root /var/www/$1/webroot/;
index index.php index.html index.htm;

autoindex on;
rewrite_log on;
open_file_cache off;

#cake beauty URLs
try_files $uri $uri/ /index.php;
location ~* \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param ENVIRONMENT "bar";
}
}

-1

Решение

Не используйте позиционные переменные ($1) в root директивы. Определить именованную переменную.

server_name "~^(?<domain>.+)\.dev\.local$";
...
root /var/www/$domain/webroot/;
...

Здесь проблема в регулярном выражении, где $1 переменная сбрасывается в пустую строку.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector