【问题标题】:NGINX rewrite php argsNGINX 重写 php 参数
【发布时间】:2017-08-18 06:01:21
【问题描述】:

我在带有 php5-fpm 的 Ubuntu 10.4 上使用 NGINX 1.2.3。

http://example.com/step2.php?qid=RAUVGXF

我想重写 /step2.php?qid=RAUVGXF 作为 /step2/RAUVGXF

我该怎么做?

我的部分 NGINX 配置如下:

root /var/www;

location ~ .php$ {
fastcgi_param HTTPS on;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass   unix:/var/run/php5-fpm.sock;
fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
}

【问题讨论】:

  • 要确认,您想浏览到http://www.example.com/step2.php?qid=RAUVGXF 并实际加载资产/step2/RAUVGXF 正确(这与大多数人尝试做的相反)? “RAUVGXF”是脚本、静态资产还是什么?您希望浏览器窗口中的 URL 更改,还是保持为 http://www.example.com/step2.php?qid=RAUVGXF

标签: php nginx url-rewriting args


【解决方案1】:

试试:

rewrite ^/step2/ /step2.php?qid= last;

【讨论】:

  • 感谢尝试过,但页面刷新(重新加载)后仍然是相同的 url(没有变化)
  • @Ronin:您必须更改代码才能更改 URL。 rewrite 指令只是让服务器理解新的 URL。
  • 据我了解 /step2/ 必须从 php 代码提交,但实际上 step2.php?qid= 执行和 nginx 解释
  • @Ronin:这不是那样吗? (可能不会;我还没有真正尝试过。)
  • 需要与开发人员核实(我不是代码人员)他是如何从 php 代码中做到这一点的。基本上我想通过运行 /step2.php 来查看 URL /step2/? qid= .. 将在我们尝试后更新。这似乎是我的难题中缺少的部分...感谢您的帮助..
猜你喜欢
  • 2014-02-18
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 2016-09-29
  • 2015-08-26
  • 1970-01-01
相关资源
最近更新 更多