Nginx重写不能使用.php扩展名

时间:2016-10-16 20:53:40

标签: php nginx url-rewriting

我试图通过此代码重写网址:

location ~ /canada1/[A-Za-z0-9-_]+/.* {
        rewrite ^/canada1/([A-Za-z0-9-_]+)/.* /atemplates/weather/weather_forecast.php?region=$1&location=$arg_db last;
}

使用此网址:

/canada1/bc_british_columbia/weather.php?db=90

我已将问题缩小到.php部分。无论我坚持在那里替换它工作正常如预期,即.phd .phq .abcdefg ...工作正常。我需要做什么才能使用.php扩展名重写该内容?

感谢您的帮助。

参考:How to rewrite old url with a period, question mark and equals in it?

1 个答案:

答案 0 :(得分:1)

按顺序评估正则表达式位置块。

如果您希望location ~ /canada1/[A-Za-z0-9-_]+/.*优先于location ~ \.php$,则需要在配置文件中放置第一个 第二个

例如:

location ~ /canada1/[A-Za-z0-9-_]+/.* {
    ...
}
location ~ \.php$ {
    ...
}

有关详细信息,请参阅this document