首页 文章

filesmatch htaccess转换为nginx(在plesk上)

提问于
浏览
0

我的旧服务器在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;

}

那么当这个网址在浏览器中时,如何将php文件作为php执行: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;
}

2 回答

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

    有关 location 语法,请参阅this document .

  • 0

    这对我有用:

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

相关问题