2016-11-28 34 views
0

我的舊服務器在htaccess文件有這樣的:filesmatch htaccess的轉換nginx的(上的Plesk)

< FilesMatch 「^度假$」> ForceType指令的應用程序/ X的httpd - PHP </FilesMatch>

在那裏我有一個度假勝地PHP文件(沒有PHP擴展)... 因此該文件是domain.com/resort/param1/param2

我努力使對nginx的等效工作...

我已經嘗試過這些項目,但沒有工作:

位置= /度假/ {

  • try_files $ URI /resort.php;

  • 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到Nginx」的人不明白nginx :)

我去過nginx網站,但國際海事組織,我需要知道更多比我做圖它瞭解或理解nginx網站的說法。

更新: 我認爲這是接近,但仍然沒有工作:(

這是網址:domain.com/resort/city/state.php

這裏是指令:

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

僅供參考。我在一個plesk服務器上,我將它添加到「Additional nginx directives」部分中...所以我想我只需要知道/添加正確的位置部分和正確的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; 
} 

要使用位於/resort PHP文件處理URI /resort/param1/param2,你可能會使用類似:

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

this documentlocation語法。

+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; }