У меня 2 приложения в 2 разных папках. Я хочу использовать корневую папку для всего, кроме случаев, когда в URL-адресе есть / SOMENAME в качестве папки, в таком случае я хочу указать на эту папку.
Я пробовал несколько блоков местоположения / псевдонима, но ни один из них не работал ( расположение было правильным, но файлы php обслуживали не только статический контент) ... см. мою конфигурацию ниже.
server {
listen 80;
#disable_symlinks off;
server_name join.mydomain.com; #allow few domains
root /www/main;
#removing the 'index.php'
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
index index.html index.php;
}
location /SOMENAME/ {
root /www/somename;
}
#######################
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param HTTPS on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
У вас есть два приложения PHP, размещенных в разных корнях документов, а это значит, что вам нужно два блока location ~ \ .php $
. Предполагая, что SOMENAME
и somename
на самом деле одинаковы, вы можете использовать что-то вроде этого:
root /www/main;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
location ^~ /somename {
root /www;
try_files $uri $uri/ /somename/index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Модификатор ^ ~
в месте
], сделайте так, чтобы это местоположение префикса имело приоритет над блоком местоположения регулярного выражения над ним, чтобы скрипты PHP обрабатывались правильным блоком местоположения. Подробнее см. этот документ .
Директива try_files
задокументирована здесь .