在内容页使用 自定义url,代码如下
function title_to_slug($title) { // 转为小写 $title = strtolower($title); // 替换非字母数字字符为 - $title = preg_replace('/[^a-z0-9]+/', '-', $title); // 去除首尾 - return trim($title, '-'); } function myurl($data) { // $py = \Phpcmf\Service::L('pinyin')->result($data['title']); // 把标题转换拼音 $py = title_to_slug($data['title']); // 把标题转换空格为- $url = $data['dirname'] . "/" . $py . ".html"; // url规则:news/pinyin.html dr_mkdirs(WRITEPATH . 'myid/'); // 创建id缓存存储目录 file_put_contents(WRITEPATH . 'myid/' . md5(trim($url, '/')) . '.txt', $data['id']); // 将id号存储缓存文件 return $url; //返回我自己的 }
在伪静态时,使用,
$myfile = WRITEPATH . 'myid/' . md5(CMSURI) . '.txt'; if (is_file($myfile)) { $id = file_get_contents($myfile); if ($id) { return [ CMSURI => 'index.php?c=show&id=' . $id, // 这里写内容的地址 ]; } }
当访问 地址为 **/**.html?bd=aaa 这样时,出现404错误,尝试在 html后添加了 (.*) 还是存在错误
$url = $data['dirname'] . "/" . $py . ".html";
$myfile = WRITEPATH . 'myid/' . md5(CMSURI) . '.txt';
改为
$uuu = CMSURI;
if (strpos(CMSURI, '?')) {
list($uuu) = explode('?', CMS_URI);
}
$myfile = WRITEPATH . 'myid/' . md5($uuu) . '.txt';