联系官方销售客服

1835022288

028-61286886

求助 版主:官方研发技术组
自定义url设置伪静态页面无法打开404错误
类型:迅睿CMS 更新时间:2022-12-02 09:34:17 伪静态规则

自定义url成功,但伪静态404错误

网站栏目和页面都是自定义网址,url规则里面都是按照需求修改完毕,

修改config/custom.php

现在前台各个链接都是自定义静态链接,但是点击打开后所有自定义链接都是404错误。

各段代码请见附件

16678759532e4e18.txt


rewrite.php添加后所有内容为:

问题:我的动态链接是:

index.php?c=category&id=$1&page=$2

而不是:

index.php?c=category&dir=$1&page=$2


根目录下:.htaccess修改如下


404错误没有显示自己的404页面,而是显示phpstudy的404页面:

  • 原因5:站点使用了伪静态

  • 解决办法:

  • 将伪静态规则删除,或者重新编写正确的伪静态规则,或关闭伪静态配置。

请教大佬这个伪静态规则哪里出问题了?

回帖
  • #1楼    迅睿框架创始人
    2022-11-08 10:55:34
    Google Pixel 手机 0
    伪静态404必然是解析规则错误,花点时间去分析解析规则
  • 小黄人 18html
    #2楼    小黄人 18html
    2022-11-08 11:19:22
    小米手机 0
    不懂别乱改,用默认生成不懂,付费修改
  • tangjun
    #3楼    tangjun
    2022-11-08 16:18:59
    Chrome 0

    微信图片_20221108161752
    回复迅睿框架创始人
    为何我的后台seo界面和说明不一样,已经升级到最新版本了。
  • tangjun
    #4楼    tangjun
    2022-11-09 08:16:26
    Chrome 0
    回复迅睿框架创始人 我现在全部初始化,现在访问出现500错误是规则没有写好吗?是否栏目设置里面修改后点击后台这个页面就能打开呢?
  • tangjun
    #5楼    tangjun
    2022-11-09 08:51:32
    Chrome 0
    栏目信息,点击该栏目。URL已经生效,但是提示500错误。
  • 难忍
    #6楼    难忍
    2022-11-09 13:29:41
    Chrome 0
    tangjun 查下服务器有不有配置伪静态规则,按官方规则做,完全没问题,如果还没解决,可以私我。
  • tangjun
    #7楼    tangjun
    2022-11-09 15:09:04
    Chrome 0
    难忍 我用的phpstudy-小皮 xp.cn. 搭建的本地服务器, 目前配置的.htaccess 位于根目录下。其他规则且不说,rewrite.php 下面这条同我动态页面网址是一致的,但是访问出现404错误。
    "show-([0-9]+)\.html" => "index.php?c=show&id=$1", //【不带栏目路径】模块内容页(show-{id}.html)就是:/index.php?c=show&id=14打开正常,/show-14.html 打开404错误。
  • ♥ 年少的少年。
    #8楼    ♥ 年少的少年。
    2022-11-09 15:13:18
    Chrome 0
    规则需要改。因为你的跟默认的不一样!
  • tangjun
    #9楼    tangjun
    2022-11-09 16:09:40
    Chrome 0
    ♥ 年少的少年。我的规则是:栏目:目录名称.html 文章名:自定义地址.html
    例:http://127.0.0.1/index.php?c=category&id=1&page=2规则:"([A-za-z0-9 \-\_]+)-([0-9]+)\.html" => "index.php?c=category&id=$1&page=$2", //【不带栏目路径】模块栏目列表(分页)(list-{dirname}-{page}.html)例:http://127.0.0.1/index.php?c=show&id=14
    规则:"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不带栏目路径】模块内容页(show-{id}.html)例:http://127.0.0.1/index.php?c=category&id=3规则:"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=category&id=$1", //【不带栏目路径】模块栏目列表(list-{dirname}.html)目前:http://127.0.0.1/index.php?c=show&id=14 可以打开,但http://127.0.0.1/show-14.html 无法打开
  • 小波工作室
    #10楼    小波工作室
    2022-11-09 17:06:38
    Chrome 0

    image
    内容和栏目规则冲突了,只能生效一个
  • tangjun
    #11楼    tangjun
    2022-11-09 17:20:15
    Chrome 0
    小波工作室 只保留1条规则 "([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不带栏目路径】模块内容页(show-{id}.html)
    自定义地址.html 和 id.html 打开都是404错误,感觉这个rewrite.php不起作用。
  • 王小五
    #12楼    王小五
    2022-11-10 23:00:17
    Chrome 0

    image
    rewrite.php
    // 判断url是否是来自自定义函数if (CMSURI) { $myfile = WRITEPATH.'mid/'.md5(CMSURI).'.txt'; if (is_file($myfile)) { $id = file_get_contents($myfile); if ($id) { return [ CMSURI => 'index.php?c=show&id='.$id, // 这里写内容的地址 ]; } }}// 自定义---解析规则----结束 "([a-z]+)\/([0-9]+)" => "index.php?c=show&field=yuming&value=$1", // 自定义---解析规则----结束
    // 共享栏目测试规则---解析规则----开始
        "([A-za-z0-9 \-\_]+)\.html" => "index.php?c=category&dir=$1",  //【共享栏目测试规则】模块栏目列表({dirname}.html)
        "([A-za-z0-9 \-\_]+)-([0-9]+)\.html" => "index.php?c=category&dir=$1&page=$2",  //【共享栏目测试规则】模块栏目列表(分页)({dirname}-{page}.html)	
        "([0-9]+)-([0-9]+)\.html" => "index.php?c=show&id=$1&page=$2",  //【共享栏目测试规则】模块内容页(分页)({id}-{page}.html)
    
    // 共享栏目测试规则---解析规则----结束
    custom.phpfunction xxxurl($data) { $author = isset($data['_id']) ? $data['_id'] : $data['id']; $url = "/".$id; dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录 file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件 return $url; //返回我自己的}
    image
  • 王小五
    #13楼    王小五
    2022-11-10 23:13:10
    Chrome 0

    custom.php

    function xxxurl($data) {

    $author = isset($data['_id']) ? $data['_id'] : $data['id'];

    $url = "xx/".$id;

    dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录

    file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件

    return $url; //返回我自己的

    }

    // 自定义---解析规则(config/rewrite.php )----结束

    "([a-z]+)\/([0-9]+)" => "index.php?c=show&field=id&value=$1",

    // 自定义---解析规则(config/rewrite.php )----结束


    xx 这个你自己改成你想要的也可以不要!id 可以改成你需要的字段

    field=id 这个我独立用的是模块字段

    我用的独立模块,没有改过共享的自定义

  • tangjun
    #14楼    tangjun
    2022-11-11 15:45:48
    Chrome 0
    王小五
    function xxxurl($data) {
    
        $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl'];
    
        $url = "xx/".$myurl;
    
        dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
    
        file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
    
        return $url; //返回我自己的
    
    }
    "([A-za-z0-9 \_\-]+)\.html" => "index.php?c=show&field=myurl&value=$1",
    出错:Parse error: syntax error, unexpected 'xxxurl' (T_STRING), expecting '(' in F:\phpstudy_pro\WWW\config\rewrite.php on line 48
  • 王小五
    #15楼    王小五
    2022-11-11 22:01:36
    Chrome 0
    myurl  是你新建的字段 搞的什么?
    tangjun
  • 王小五
    #16楼    王小五
    2022-11-11 22:07:25
    Chrome 0
    function xxxurl($data) {
    
        $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl'];
    
        $url = "xx/".$myurl;
    
        dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
    
        file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
    
        return $url; //返回我自己的
    
    }
    tangjun 上面代码不能放rewrite.php里面
  • tangjun
    #17楼    tangjun
    2022-11-13 18:05:59
    Chrome 0
    王小五 我现在是自定义文件名,字段myurl。
  • 王小五
    #18楼    王小五
    2022-11-14 15:28:34
    华为手机 0
    代码不放错,或者还错,应该不会有问题的,// 自定义---解析规则----开始// 自定义---解析规则----结束一定要隔开,不然还是404
  • 王小五
    #19楼    王小五
    2022-11-14 15:29:41
    华为手机 0
    // 自定义---解析----结束
  • 王小五
    #20楼    王小五
    2022-11-18 19:45:27
    Chrome 0
    自定义怎么样了?
  • tangjun
    #21楼    tangjun
    2022-11-26 10:46:56
    Chrome 0
    王小五 不好意思,前段时间工作忙,没时间研究。老是有问题,已经把网址、数据库全部清零。这几天有时间来重头研究。不知道你有什么好的建议。
  • 王小五
    #22楼    王小五
    2022-11-27 12:40:10
    Chrome 0
    tangjun 先弄独立模块的伪静态
  • tangjun
    #23楼    tangjun
    2022-11-27 17:17:27
    Chrome 0
    王小五 请教一下,搜索,静态调用有没有什么好办法。
    <form class="search-form" action="/index.php" method="get">
    <input type="hidden" name="s" value="news">
    <input type="hidden" name="c" value="search">
    <input type="text" placeholder="搜索内容..." name="keyword">
    <input type="submit" value="提交搜索"  />
    </form>
    这个是官方程序,搜索后是动态地址:http://127.0.0.1/index.php?s=article&c=search&keyword=关键词我想调用静态地址:http://127.0.0.1/search/keyword-关键词.html
  • junjun
    #24楼    junjun
    2022-11-27 18:43:52
    Chrome 0
    我现在的动态搜索代码如下:
                        <form   action="{SITE_URL}index.php" method="get" target="_blank">
                        <button class="button_search"></button>
                        <input type="hidden" name="s" value="article">
                        <input type="hidden" name="c" value="search">
                        <input name="keyword" id="s" type="text" value="搜索内容..." onclick="this.value = '';">
                        </form>
  • 王小五
    #25楼    王小五
    2022-11-27 19:02:55
    Chrome 0
    "search\/(.+)\.html" => "index.php?s=article&c=search&keyword=$1",
    试一试这个!
  • junjun
    #26楼    junjun
    2022-11-27 19:14:58
    Chrome 0
    王小五 我的伪静态正常: "search\/(.+)\.html" => "index.php?s=article&c=search&rewrite=$1", //【共享模块搜索】模块搜索页(分页)(search/{modname}/{param}.html) "search\.html" => "index.php?s=article&c=search", //【共享模块搜索】模块搜索页(search/{modname}.html) "tag\/(.+)\-([0-9]+)\.html" => "index.php?s=tag&name=$1&page=$2", // tag插件分页
    "tag\/(.+)\.html" => "index.php?s=tag&name=$1", // tag插件
  • junjun
    #27楼    junjun
    2022-12-02 09:33:06
    Chrome 0
    总结:放弃了“/栏目名/栏目名/文件名.html”这种文件路径,只能做301跳转,原de的网址完全照搬是行不通的。
    满意答案
  • tangjun
    #28楼    tangjun
    2022-12-02 09:34:16
    Chrome 0
    @junjun:这样较大的改动对网站波动较大。
  • 小波工作室
    #29楼    小波工作室
    2022-12-02 09:34:17
    Chrome 0
    接单各种复杂的url定义方案,需要的加下方QQ