我试图通过此代码重写网址:
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?
答案 0 :(得分:1)
按顺序评估正则表达式位置块。
如果您希望location ~ /canada1/[A-Za-z0-9-_]+/.*
优先于location ~ \.php$
,则需要在配置文件中放置第一个 第二个。
例如:
location ~ /canada1/[A-Za-z0-9-_]+/.* {
...
}
location ~ \.php$ {
...
}
有关详细信息,请参阅this document。