2016-11-28 2 views
0

мой старый сервер имел в файле Htaccess:FilesMatch Htaccess обращенным в Nginx (на панели управления Plesk)

< FilesMatch "^ курортная $"> ForceType применение/х-HTTPD-PHP </FilesMatch>

где я был курорт PHP-файл (без расширения PHP) ... поэтому файл был domain.com/resort/param1/param2

Я изо всех сил, чтобы сделать равноценную работу для Nginx ...

я пробовал эти элементы, но ни одна работа:

место =/курорт/{

  • try_files $ /resort.php URI;

  • try_files $ uri $ uri/@ extensionless-php;

  • try_files $ uri $ uri/$ uri.html $ uri.php? $ Query_string;

  • try_files $ uri $ uri//resort.php$is_args$args;

  • rewrite^(. *) $ /resort.php last;

    }

Итак, как я исполняю курортный файл как PHP, когда этот URL в браузере: domain.com/resort/param1/param2.php

СПАСИБО!

PS. понравится некоторые страницы/ресурсы/учебники, которые объясняют «apache to nginx» для людей, которые не понимают nginx :)

Я был на сайте nginx, но IMO, мне нужно знать больше, чем я, чтобы понять это или понять, что говорит сайт nginx.

обновление: я думаю, что это близко, но до сих пор не работает :(

это URL: domain.com/resort/city/state.php

здесь директива:

location ~ /resort/ { 
    rewrite ^/resort/(.*)/(.*) /resort/$1/$2 break; 
} 
+0

FYI. Я на сервере plesk, и я добавляю это в раздел «Дополнительные директивы nginx» ... поэтому я думаю, что мне нужно только знать/добавлять правильную часть местоположения и правильную часть try_files/rewrite. – user1864734

+0

Ошибка: 17938 # 0: * 92491 FastCGI, отправленный в stderr: «Доступ к скрипту» /var/www/vhosts/domain.com/httpdocs/resort был отклонен (см. Security.limit_extensions) " во время чтения заголовка ответа от вверх по течению security.limit_extensions = FALSE – user1864734

ответ

0

чтобы выполнить файл без .php расширения, как если бы это был PHP-файл, вам нужно будет повторить location блок, который обрабатывает эти типы запроса.

Это будет выглядеть примерно так:

location ~ \.php$ { 
    try_files $uri =404; 
    include fastcgi_params; 
    fastcgi_pass ...; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
} 

Для обработки URI /resort/param1/param2 с использованием файла PHP, расположенный в /resort, вы можете использовать что-то вроде:

location ~ ^/resort/ { 
    include fastcgi_params; 
    fastcgi_pass ...; 
    fastcgi_param SCRIPT_FILENAME $document_root/resort; 
} 

this document См для location синтаксиса.

+0

Благодаря Ричарду ... 1) лЮБЛЮ ссылку вы дали :) 2) https://talk.plesk.com/threads/php7-and-php7 -0-fpm-sock-how-to-make-it-work.339273/# post-807932 ==, который говорит мне, что мне не нужно использовать строки include или fastcgi ???? Я пытаюсь заставить его работать :) – user1864734

0

это то, что работает для меня:

location ^~ /resort/ { 
     try_files $uri $uri/ /resort.php; } 
Смежные вопросы