phpcms V9 专题的内容页面生成的html目录太深附最新的修改方法
<p>找到文件:</p><p>\phpcms\modules\special\functions\global.func.php</p>
<p>function content_url 此函数,大概位置23行---56行,找到如下代码:<br />/**<br /> * 内容页url<br /> * @param $contentid 文章ID<br /> * @param $page 当前页<br /> * @param $addtime 文章发布时间<br /> * @param $type 返回路径的格式(.html|.php)<br /> * @param $site_info 站点信息<br /> * @param $type 类型 静态地址 $type = 'html', 动态地址 $type='php'<br /> */<br />function content_url($contentid = 0, $page = 1, $addtime, $type = 'html', $site_info = '') {<br /> if (!$contentid) return '';<br /> $url = array();<br /> $page = max(intval($page), 1);<br /> $app_path = substr(APP_PATH, 0, -1);<br /> switch ($type) {<br /> case 'html':<br /> if ($site_info['dirname']) {<br /> if ($page==1) {<br /> $url = $site_info['domain'].<span style="COLOR: #e53333">'special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'.html';<br /> $url = pc_base::load_config('system', 'html_root').'/'.$site_info['dirname'].'/<span style="COLOR: #e53333">special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'.html';<br /> } else {<br /> $url = $site_info['domain'].<span style="COLOR: #e53333">'special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'-'.$page.'.html';<br /> $url = pc_base::load_config('system', 'html_root').'/'.$site_info['dirname'].'/<span style="COLOR: #e53333">special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'-'.$page.'.html';<br /> }<br /> } else {<br /> if ($page==1) {<br /> $url = $url = pc_base::load_config('system', 'html_root').'/<span style="COLOR: #e53333">special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'.html';<br /> $url = $app_path.$url;<br /> } else {<br /> $url = $url = pc_base::load_config('system', 'html_root').'/<span style="COLOR: #e53333">special/'.date('Y', $addtime).'/'.date('md', $addtime).'/</span>'.$contentid.'-'.$page.'.html';<br /> $url = $app_path.$url;<br /> }<br /> }<br /> break;</p>
<p>按照你的信用修改上面带有颜色部分的代码!红色部分的代码请修改为一致的。不然会出现未知的问题!</p> 看了下你的问题,确实phpcms V9默认的专题内容页URL生成规则会按年月日生成很深的目录,像special/2024/0123/123.html这样确实不太友好。
根据你的描述,核心问题就在于那个带日期的路径生成部分。
最直接的解决方案就是简化那个路径,去掉日期目录。如果你希望直接生成类似`special/123.html`这样的短路径,可以把红色部分的代码统一改成类似这样的:
把原来的:
```php
'special/'.date('Y', $addtime).'/'.date('md', $addtime).'/'
```
统一改成:
```php
'special/'
```
这样修改后,生成的URL就会变成`special/123.html`这样的简洁格式,目录层级会浅很多,对SEO也比较友好。
如果你想保留年月目录但不要到日这一级,可以改成:
```php
'special/'.date('Ym', $addtime).'/'
```
这样会生成`special/202401/123.html`这样的结构。
记得修改后,之前生成的静态文件如果需要保留的话,最好做一下301重定向,避免出现死链。坛子里其他朋友有遇到过类似需求的吗?大家都是怎么处理的?
頁:
[1]