Nginx删除前导斜杠和尾随文件类型后缀并传递给php

时间:2018-07-19 15:48:25

标签: nginx

我已经收到了迁移以Apache托管的旧php编写的现有网站的信息,我将部署到Nginx。

我希望有这样的URL:http://example.com/about.html 要像这样http://example.com/content.php?page=about

执行

所以我需要删除前导斜杠并删除html。如果我对特定页面进行硬编码,则下面的配置有效:

location / {
    try_files $uri $uri/ /content.php?page=about;
}

但是,无论我是否访问our-company.html或our-services.html,它始终可以为您服务。我不确定我需要替换配置中的“关于”字符串。

1 个答案:

答案 0 :(得分:0)

您应该使用rewrite指令执行实际的翻译。您可以从指定为location语句的最后一个参数的命名try_files调用它。

例如:

location / {
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    rewrite ^/(.*)\.html$ /content.php?page=$1 last;
}

有关更多信息,请参见this document