我正在尝试几个小时来解决这个问题,那应该不是那么让人头疼。重写url段以获取参数nginx
我需要一个正确的代码为nginx服务器来实现这一点。
我有一个这样的网址: https://www.example.com/share/userid/file/
我想将它改写为: https://www.example.com/share/?id=userid&key=file/
我已经在这里计算器几种解决方案尝试过,但他们都没有工作。
我已经试过这样:
rewrite ^/share/(.*)/(.*)$ /share/index.php?id=$1&key=$2 ;
这工作,如果我把一个index.php文件存在,但我不能这样做,原因/股/是一个固定链接,而不是一个实际的文件夹(WordPress的)。如果我这样做:
rewrite ^/share/(.*)/(.*)$ /share/?id=$1&key=$2 ;
我得到一个404 nginx错误。
它似乎也是^/share /(。)/(。)$实际上并没有触发重写,所以这一定是错误的,虽然我在看nginx重写文档并且看起来没问题。
任何想法?我也尝试try_files没有成功。
谢谢
UPDATE:
OK所以此工程
rewrite ^(/share/)([0-9]+)/(.*)/$ https://$server_name/share/?id=$2&key=$3 last;
但是由于某种原因,如果我这样做是行不通:
rewrite ^(/share/)([0-9]+)/(.*)/$ /share/?id=$2&key=$3 last;
我添加$ server_name使其工作,任何人都可以解释我为什么?
我需要nginx的代码,我不使用Apache。 –
编辑答案 –
谢谢,但那几乎可以匹配任何东西,请检查我的更新 –