用Nginx和PHP重写fastcgi仍然将旧的request_uri发送到后端(php和
我试图将运行symfony框架的php网站迁移到nginx和php over fastcgi. 这一切都很好地利用了http://wiki.nginx.org/的Symfony howto但我遇到了自定义重写规则的麻烦. 我的目标是将/ aaaa形式的URL重写为/ view / shorthand / aaaa.然后应该由php和symfony对请求进行处理. 旧的apache重写规则:
我尝试过的Nginx规则:
他们都被发送到fastcgi但是request_uri似乎仍然是/ aaaa,因为我收到此错误:
我也尝试过使用try_files而没有任何运气.请指教. 最佳答案
问题在于默认的FastCGI变量集(fastcgi_params配置文件),其中REQUEST_URI等于nginx的$request_uri.但是如果你仔细阅读Nginx documentation,你会注意到$request_uri和$uri变量之间的区别.
> $request_uri =完整的原始请求URI(带参数) $uri的值可能在请求处理期间发生变化,例如进行内部重定向时,或使用索引文件时.因此,如果要在传递给PHP之前修复REQUEST_URI值,只需将$request_uri更改为$uri?$args in fastcgi_params. 这是Nginx领导开发者Igor Sysoev recommends in the official mailing list的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |