Nginx/Apache支持PATH_INFO模式
默认情况下,nginx和apache是不支持path_info的,我们需要做些配置让它支持。
首先需要启用cgi.fix_pathinfo
——修改php配置文件php.ini
,将;cgi.fix_pathinfo=1
前面的冒号;
去掉,重启php服务。然后再配置Nginx或Apache。
Nginx
配置说明:
- 修改Nginx配置文件
nginx.conf
: ~ \.php
改为~ \.php(.*)
,因为要接收.php
后面的参数,不能让它被当做目录处理。- 添加
fastcgi_split_path_info
,该参数后面需指定正则表达式,而且必须要有两个捕获,第一个捕获将会重新赋值给$fastcgi_script_name
,第二个捕获将会重新赋值给$fastcgi_path_info
。 - 添加
fastcgi_param PATH_INFO
,值为$fastcgi_path_info
。 - 重启Nginx服务。
配置示例: 为了醒目,修改的3处加了反引号( ` )做高亮处理,实际使用时需去掉反引号。
location ~ \.php`(.*)`$ {
root /var/www/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
`fastcgi_split_path_info ^(.+\.php)(.*)$;`
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
`fastcgi_param PATH_INFO $fastcgi_path_info;`
include fastcgi_params;
}
Apache
配置说明:
- 修改Apache配置文件
httpd.conf
: - 搜索
Directory
标签,在标签里最后添加AcceptPathInfo On
,并修改标签里的AllowOverride None
为AllowOverride All
。 - 搜索
LoadModule rewrite_module modules/mod_rewrite.so
,去掉前面的#
。 - 重启Apache服务。
- 项目根目录添加
.htaccess
文件:RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Nginx/Apache支持PATH_INFO模式 https://www.gzza.com/872.html
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com
THE END