返回

学习笔记 | OneIndex 伪静态配置以及迁移到 PHP8.2

伪静态配置错误会导致访问带有空格的路径和文件返回 403,教你如何正确配置 OneIndex 的伪静态,以及如何迁移到 PHP8.2。

伪静态配置

不知道你是否存在该问题:开启伪静态后,访问文件时若目录或文件名带有空格则无法浏览和下载。

如果我们手动加上 /?/ 则可以正确访问,那么显然这是伪静态的锅。然而以我的正则水平完全看不出我的伪静态为何有问题,遂求助网络,发现只有这篇博文中提供的伪静态文件可以解决以上问题:

AddDefaultCharset utf-8

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

很神奇,以我的正则水平实在看不懂为何这是有效的,但正所谓能跑就行。

迁移到 PHP8.2

最近我的盘又出问题了,发现输出了一堆错误,所以这里总结了一下自从升级到 PHP8.2 后遇到的错误时能参考的博客:

  1. 踩坑记录 | OneIndex 首页出现 HTTP ERROR 500

  2. (转载)PHP 8.0 部分错误的解决办法 - 无主界 (Deprecated: Required parameter $xxx follows optional parameter $yyy )

  3. PHP8中使用$_POST或者$_GET出现Undefined array key “xx“

总而言之,不需要改动过多代码,只需要在报错的地方删除或者加上一些 isset 即可。但尤其需要注意部分 ifisset 的逻辑,避免产生漏洞。

附录

参考文献

  1. 搭建oneindex作为外链/图床 - moluuser’s Blog

版权信息

本文原载于 reincarnatey.net,遵循 CC BY-NC-SA 4.0 协议,复制请保留原文出处。

CC BY-NC-SA 4.0
最后更新于 Jul 19, 2024 00:20 CST
本博客所有内容无特殊标注均为失迹原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy, mod by Korita
© Licensed Under CC BY-NC-SA 4.0