如何在不带斜杠的情况下访问目录的index.php并且不获取301重定向(NGinx)

时间:2019-02-26 19:52:47

标签: php nginx redirect

我一直在寻找重写我的api URL,以便它们没有斜杠。我使用NGinx而不是Apache。对于Apache服务器,我确实发现了this answer这个问题,但是对于NGinx来说,它开箱即用。

1 个答案:

答案 0 :(得分:0)

我最终选择了this sample Apache config,并使用a config rewrite service将配置转换为Nginx格式。它产生了一个大部分有效的解决方案,但是有点破损。它会按预期访问URL,但是当访问/ api /中不存在的文件或目录时,它会中断访问资源并导致/api/index.php被转储为下载。

我尝试使用配置来生成以下配置,该配置使用提供给整个服务器的html 404消息。

NGinx

location /api {
  if (-e $request_filename){
    rewrite ^/(.*[^/])$ /$1/;
  }
}

我的文件结构是:

/api/index.php
/api/hotbits/index.php
/api/cryptography/index.php

使用新的config选项,它将转换为以下功能URL:

/api
/api/
/api/hotbits
/api/hotbits/
/api/cryptography
/api/cryptography/