OpenWrt下kodexplorer可道云 存储/文件下WebDAV 挂载提示当前服务器不支持PATH_INFO模式解决办法

chenyajun  2021-12-29 19:51:02  阅读 4006 次 评论 0 条

官方的说明,地址

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 NoneAllowOverride All

  • 搜索LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的#

  • 重启Apache服务。

  • 项目根目录添加.htaccess文件:

RewriteEngine On

RewriteCond %{HTTP:Authorization} ^(.*)

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

我的OpenWrt下kodexplorer可道云用的是nginx,找到/etc/init.d下kodexplorer文件然后搜索try_files \$uri = 404;,在前面添加个#号注释掉这一行保存,然后重启可道云或者nginx

# try_files \$uri = 404;

OpenWrt下kodexplorer可道云 存储/文件下WebDAV 挂载提示当前服务器不支持PATH_INFO模式解决办法-陈亚军博客

之后就可以开启了

OpenWrt下kodexplorer可道云 存储/文件下WebDAV 挂载提示当前服务器不支持PATH_INFO模式解决办法-陈亚军博客


本文地址:https://chenyajun.net/index.php/post/79.html
版权声明:本文为原创文章,版权归 chenyajun 所有,欢迎分享本文,转载请保留出处!

评论已关闭!