Я запускаю php5.6 на веб-сайте. Мне нужно запустить php7.0 в папке на этом веб-сайте. Это папка https://www.example.com/one/two/three . Тогда любой неверный запрос от https://www.example.com/one/two/three/ * должен перейти в https://www.example.com/one/two/three/ index.php .
Это то, что у меня есть.
server {
listen 80;
access_log /path/to/site/logs/access.log combined buffer=256k flush=600m;
error_log /path/to/site/logs/error.log warn;
root /path/to/site/httpdocs/;
index index.php index.html index.htm;
#-- Deny Ips
location / {
include denyips.conf;
try_files $uri $uri/ =404;
}
#-- Error Pages
error_page 404 /404.html;
error_page 500 502 503 504 /index.php;
location = /50x.html {
root /usr/local/nginx/html;
}
#-- Folder with php7.0
location ~ /one/two/three/ {
try_files $uri $uri/ index.php?$query_string;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#-- Main website
location ~ \.php$ {
include denyips.conf;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# With php5.6-fpm:
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
fastcgi_param HTTPS on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* (\.ht|\.bak|\.off|\.config|\.sql|\.fla|\.psd|\.ini|\.log|\.sh|\.inc|\.swp|\.dist)$ {
deny all;
}
}
Теперь у меня есть php7. 0 работает для всех файлов в этой папке https://www.example.com/one/two/three . Мне нужны все плохие запросы из этой папки, чтобы перейти к https://www.example.com/one/two/three/index.php
Предположим, что index.php
, который вы хотите использовать, находится в /путь/на/сайт/httpdocs/один/два/три/index.php
, вам нужно использовать
try_files $uri $uri/ /one/two/three/index.php$is_args$args;
в блоке /один/два/три
. Здесь нужно использовать путь, так как try_files
использует каталог root
в качестве префикса при поиске файлов.
Вы также пропустили закрытие }
в конфигурации вопроса для этого блока расположения.