当前位置: 首页 > 面试题库 >

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

东郭和光
2023-03-14
问题内容

我在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;
  }
}

问题答案:

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']


 类似资料:
  • 问题内容: 我正在使用引荐来源网址。它会按预期工作,直到用户单击另一个页面并且引荐来源网址更改为最后一页为止。 如何存储原始引用网址? 问题答案: 将其存储在cookie(如果您的情况可以接受)或会话变量中。

  • 问题内容: 有没有办法从获取原始/原始JSON值? 问题: 现在是,但是我需要原始字符串。 有没有办法获得这个原始价值?另外,我无法更改创建方式(例如更改设置),因为它作为参数传递给我的课程… (参考:原始的NJsonSchema问题) 问题答案: 您无法获取原始字符串,无法识别日期字符串并将其转换为自身内部的结构。如果您这样做,则可以看到以下内容: 但是,您可以通过执行以下操作以ISO 8601

  • 我在tradingview中有一个警报,它会向我的服务器发送一个带有请求的webhook,其中一个简单的主体包含一些信息。webhook发送纯文本,它不发送JSON数据。 我想知道有没有办法得到纯文本数据 这是JSON webhook 这就是我的密码

  • 问题内容: 我已经在JAX-WS中设置了SOAP WebServiceProvider,但是在弄清楚如何从SOAPMessage(或任何Node)对象中获取原始XML时遇到了麻烦。这是我现在所获取的代码示例,也是我尝试获取XML的地方: 是否有一种简单的方法来获取原始请求的XML?如果有一种方法可以通过设置其他类型的Provider(例如Source)来获取原始XML,那么我也愿意这样做。 问题答

  • 如何在Struts2中获得上传文件的原始文件名。目前我得到的是一个filename.tmp的文件名,而上传的文件是一个CSV,文件名与我得到的不同。这是JSP代码 下面是strut配置中的动作映射 Action类包含以下3个实例变量实例以及getter和setter 但是,未获取实际文件名,而和属性为。

  • 问题内容: 我正在尝试在我的PHP应用程序中实现URL重写。有人可以分享在PHP和MySQL中实现URL重写的分步过程吗? 在我的应用程序中,我想实现以下URL重写,我想重定向 至 请告诉我如何以上述任何一种方式实现这两个URL重写。 根据以下两种类型中的SEO,管理,应用程序的观点,哪个URL最好是另一件事。 问题答案: 通常,这只不过是启用mod_rewrite模块(您可能已经在主机上启用了该