一尘不染

Apache重写-在PHP中获取原始URL

php

我在Nginx或Apache中对此地址进行了重写:

http://domain.com/hello

像这样的脚本

http://domain.com/test.php&ref=hell

如何在PHP中访问此重写的URL?因为,如果我$_SERVER['REQUEST_URI']当然使用,我会得到:

/test.php&ref=hell

但我只想要:

/hello

这可能吗?感谢您的帮助。

更新nginx cnf

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

server
{
  listen 80;
  server_name domain.test;


  location /
  {
    rewrite ^/(main|best|air)$ /core/feeds.php?act=$1 last;
    proxy_pass http://127.0.0.1:8080;
  }
}

阅读 217

收藏
2020-05-29

共1个答案

一尘不染

Nginxconf中,我们需要添加用户标头request_uri

proxy_set_header request_uri $request_uri;

并阅读php

echo $_SERVER['HTTP_REQUEST_URI'];

更新

由于某些原因,nginx不喜欢标题名称中的符号“ _”,之前不知道它的工作方式,也许在nginx更新后有所更改。现在我正在使用

proxy_set_header rewriteduri $request_uri;

和在PHP

$_SERVER['HTTP_REWRITEDURI']
2020-05-29