Я использую Ubuntu 16.04, Nginx 1.10.3 и PHP 7.0.Примерами PHP-приложений являются CodeIgniter 3.1.5.
Я пытаюсь запустить статическую страницу в корне моего сайта www.example.com (работает) с несколькими другими приложениями CodeIgniter, каждое из которых работает в подкаталогах на www.example.com/client-a, www.example.com/client-b и т. д.
Статическая страница в моем корне работает нормально, однако при перенаправлении на приложения в подкаталогах ни одна из таблиц стилей искрипты загружаются, что приводит к 404 ошибкам.Маршрутизация работает, хотя.
Файлы приложений последующих приложений не существуют друг в друге. Корень приложения существует в /var/www/example/public_html
, тогда как «вложенные» приложения живут в /var/www/client_a/public_html
, /var/www/client_b/public_html
и т. Д.
Вот мой блок серверов Nginx:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com www.example.com;
root /var/www/example/public_html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /client-a {
alias /var/www/client_a/public_html;
try_files $uri $uri/ @nested;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}
location @nested {
rewrite /client_a/(.*)$ /client_a/index.php?/$1 last;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
location ~ /\.ht {
deny all;
}
}