因为近期需要使用kodbox的webdav功能,所以说需要打开path_info模式,这里记录一下步骤
转载 KODBox文档-Nginx/Apache支持PATH_INFO模式
默认情况下,nginx和apache是不支持path_info的,我们需要做些配置让它支持。
1.针对PHP的修改
首先需要启用cgi.fix_pathinfo——修改php配置文件php.ini,将;cgi.fix_pathinfo=1前面的冒号;去掉,重启php服务。
然后再配置Nginx或Apache。
2.修改伪静态以及web程序
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]