Я просмотрел десятки других вопросов и ссылок в Интернете - и по всем моим расчетам моя настройка должна работать, но это не так.Чистые URL-адреса и расширение php на nginx
У меня есть установка nginx с php-fpm. Если я пытаюсь получить доступ к файлу .php, он работает правильно, и я получаю правильные результаты. Я получил это в моем файле конфигурации:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Теперь я хочу, чтобы настроить свой веб-приложение, так что /somedir/file
автоматически выполняет /somdir/file.php
в то же время отображения /somdir/file
в адресной строке браузера. Так что я изменил мой конфиг, чтобы содержать следующее:
location/{
try_files $uri $uri/ $uri.php?query_string
}
Это вида работ, то есть, сервер не доступ к .php файла. Тем не менее, вместо того, чтобы выполнять его с использованием существующего блока location ~ \.php$
, он просто выплевывает исходный код php в качестве загрузки в браузер. Если я добавлю .php вручную к запрашиваемому URL-адресу, то выполняется php.
Похоже, что если сервер соответствует try_files
- $uri.php
, он не делает другого прохода в местах, чтобы увидеть, что ему нужно делать с файлами php. Я попытался поставить блок php выше и ниже location /
, но это не имеет значения.
Как я могу получить php для выполнения?
Ну, это должно сработать. Показать полный серверный блок –
Вам не хватает конечного ';'. Это просто опечатка в вопросе? –