dedecms织梦标签页的路由重写

2024-11-05 12

    最近做了下织梦标签页的路由重写,这里把经验分享给大家:

160c4780a1c66b7173a116191743ea1f_u=4169331426,3483444546&fm=253&fmt=auto_w=2000&h=800.webp

    我们都知道织梦标签页的默认路径格式是www.xxx.com/tags.php?/标签/

    我们一般会希望它的路径是www.xxx.com/tag/标签/

    或者【标签】这个中文字符不出,直接用ID或者拼音啥的,这里不提这种处理方案,百度有对应tag静态化的教程

    我这里用到的有百度云、阿里云以及小平台的虚拟机各一个,刚好就全部做了一下测试,也都实现了:

    ①将include/taglib/tag.lib.php87行的$row['link']=$cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";改成$row['link']=$cfg_cmsurl."/tag/".urlencode($row['keyword'])."/";这样页面上的标签链接就变成了我们想要的链接

    ②路由重写

    【百度云nginx路由重写】

    文件名:

    bcloud_nginx_user.conf

    内容:

    location/{

    rewrite^/tag/(.*)$/tags.php?/$1last;

    }

    【阿里云Linux-apache路由重写】

    文件名:

    .htaccess

    内容:

    RewriteEngineon

    RewriteCond%{REQUEST_FILENAME}!-d

    RewriteCond%{REQUEST_FILENAME}!-f

    RewriteRule^tag/(.*)$tags.php?/$1

    【iis路由重写】

    文件名:

    web.config

    内容:

    <?xmlversion="1.0"encoding="UTF-8"?>

    <configuration>

    <system.webServer>

    <rewrite>

    <rules>

    <rulename="Rewrite"stopProcessing="true">

    <matchurl="^tag/(.*)$"ignoreCase="false"/>

    <conditionslogicalGrouping="MatchAll">

        </conditions>

        </rule>

    </rules>

    </rewrite>

    </system.webServer>

    </configuration>

    ③用户访问页面上的www.xxx.com/tag/标签/,实际上取得的内容是www.xxx.com/tags.php?/标签/,刚好符合了我的需求

    希望能给有同样需求的站长们提供一点点帮助