15621857753

PHPCMS V9怎么解决更新url路径出现双斜杠//的bug

来源:齐鲁建站 栏目:PHPCMS 阅读: 日期:2021-01-10

本文主要介绍了PHPCMS V9怎么解决更新url路径出现双斜杠 的bug,修改create_html.php文件,二次开发URL代码就可以去掉双斜杠 的问题,推荐给有此需要的朋友,值得研究。

phpcms生成内容或更新URL,有时会出现url路径中多个一个斜杆“/”,出现双斜杠的情况,如:域名/category//article/1.html,域名//category/article/1.html等。

解决方法:

1、URL规则管理中的{$categorydir}和{$catdir}变量前面“/”去除,默认这两个变量尾部都是自带“/”的;

2、system.php配置文件中设置html_root为空:'html_root' => '',system.php文件在/caches/configs/路径下。

下面说一说分析步骤。无论是生成内容还是更新URL,链接处理时都需要调用/phpcms/modules/content/模块下create_html.php中的urls()函数,大约在190行,如下图:

PHPCMS路径出现双斜杠

其中$this->url = pc_base::load_app_class('url'),所以urls()调用了content模块url类的show()方法,我们以更新指定栏目URL为例,看看是如何处理url链接的,如下图:

PHPCMS路径出现双斜杠

其中$this->urlrules = getcache('urlrules','commons'),也就是加载了urlrules缓存,这个缓存里面保存的就是后台设置的url规则。从上图可以看到各种url和dir目录最后都拼接了“/”,所以后台设置url规则时{$categorydir}和{$catdir}两个变量前不需要再加斜杆符号。

同样是url类中,再往下看会涉及到$html_root变量,如下图:

PHPCMS路径出现双斜杠

从上图中可以看到,$html_root变量后面也都拼接了斜杆字符,所以system.php配置中的html_root不需要以“/”字符作为结尾。

以上就是关于PHPCMS路径出现双斜杠的所有内容,希望可以帮到大家,欢迎找小编一起交流~