2016-02-18 2 views
0

Я просмотрел десятки других вопросов и ссылок в Интернете - и по всем моим расчетам моя настройка должна работать, но это не так.Чистые 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 для выполнения?

+0

Ну, это должно сработать. Показать полный серверный блок –

+0

Вам не хватает конечного ';'. Это просто опечатка в вопросе? –

ответ

0

Вы хотите, чтобы file.php обрабатывался как индексный файл, так что domain.com/dir/file.php работает на domain.com/dir/?

Почему бы просто не переименовать его в index.php?

Вы можете сделать это путем добавления этого параметров на вашем месте блока:

index    index.html file.php index.php; 

Если нет, то вы можете посмотреть в написании правила перезаписи для Nginx на карте domain.com/dir/ к domain.com/dir/file.php (но вы должны сделать это для каждого каталога, что вам нужно, чтобы он работал)

Смежные вопросы