【发布时间】:2020-07-24 23:45:00
【问题描述】:
我有一种情况,我想重写以下 URL,并将我的第一个 URL 参数作为 data 参数发送,其余作为 query 参数
www.example.com/anything.jpg //Skip - Do Nothing because its a file from root
www.example.com/anything //anything == ?data=$1
www.example.com/something/b //something == ?data=$1 b == &query=$2
www.example.com/certainly/b/c //certainly == ?data=$1 b/c == &query=$2
www.example.com/anything/b/c.jpg //anything == ?data=$1 b/c.jpg == &query=$2
www.example.com/but/b/c/d //but == ?data=$1 b/c/d == &query=$2
所以我的第一个 URL 参数将始终为 data 并保持为 query 无论它有什么。我在这里htaccess redirect only if it has value after forward slash 找到了这个问题,并在某种程度上得到了它
rewrite ^/(.*)/(.+)$ /handle.php?data=$1&query=$2 last;
这有一些问题,因为这重写为以下
www.example.com/anything.jpg //Results in 404 Not Found
www.example.com/anything //Results in 404 Not Found
www.example.com/something/b //Working good
www.example.com/certainly/b/c //data=certainly/b query=c
www.example.com/anything/b/c.jpg //data=certainly/b query=c.jpg
www.example.com/but/b/c/d //data=but/b/c query=d
我尝试在 rewrite ^/(.*)/(.+)$ /handle.php?data=$1&query=$2 last; 中使用不同的变体,但没有任何效果
【问题讨论】:
-
@mickmackusa 哦对不起,我忘了。我当然接受它作为最佳答案。 :)
标签: php apache nginx url url-rewriting