filesmatch htaccess转换为nginx(在plesk上)

时间:2016-11-28 08:07:04

标签: php .htaccess nginx

我的旧服务器在htaccess文件中有这个:

< FilesMatch“^ resort $”>     ForceType application / x-httpd-php < / FilesMatch>

我有一个度假的php文件(没有php扩展名)... 所以该文件是domain.com/resort/param1/param2

我正在努力为nginx做同等的工作......

我已尝试过这些项目,但都没有效果:

location = / resort / {

  • 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;

  • 重写^(。*)$ /resort.php last;

    }

那么当这个url在浏览器中时,如何将php文件作为php执行: domain.com/resort/param1/param2.php

谢谢!

PS。我会喜欢一些页面/资源/教程,为那些不懂nginx的人解释“apache to nginx”:)

我去过nginx网站,但IMO,我需要知道的比我更了解或了解nginx网站的说法。

更新: 我认为这很接近,但仍然无效:(

这是网址:domain.com/resort/city/state.php

这是指令:

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

2 个答案:

答案 0 :(得分: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/param1/param2的PHP文件处理URI /resort,您可以使用以下内容:

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

请参阅this document了解location语法。

答案 1 :(得分:0)

这对我有用:

location ^~ /resort/ {
      try_files $uri $uri/ /resort.php; }