推荐应用
一步一步教你怎么让discuz X3的标签链接支持中文并且将url进行重写 支持X3.1 X3.2
发布于 2015-05-29
特别申明:本人测试的版本为3.1,但3.2也支持。
回到正题,misc.php?mod=tag&id=1,默认情况下内容展示页和标签列表页的标签链接会是前面的样子,但这样对搜索并不友好,并且标签是很好的内链工具,不能没有它,但每次看到这样的链接内心无比惆怅,经过分析源代码,发现系统本身是可以接收标签名称传递的,例如原来是:misc.php?mod=tag&id=1,也可以改成 misc.php?mod=tag&name=手机维修教程 这样子,当然改成中文并不完美,因为url不友好,于是只需改模板和添加Rewrite规则就能实现,马上动手来实现。
友情提示:
如果你没有使用默认模板,那只需把默认模板下要修改的文件复制到正在使用的模板目录下再进行修改,尽量不要在默认模板上更改,如果正在使用的就是默认模板也没关系,可以把默认模板复制一份,改一下目录名称及相关的参数当一个新的模板来用也是可以的,如果认为这样太麻烦也可以就在默认模板上修改,效果也一样。
首先把template/default/tag/目录复制到新的模板template/你正在使用的模板名称/下,目录里面有两个文件,先改tag.htm。
将
回到正题,misc.php?mod=tag&id=1,默认情况下内容展示页和标签列表页的标签链接会是前面的样子,但这样对搜索并不友好,并且标签是很好的内链工具,不能没有它,但每次看到这样的链接内心无比惆怅,经过分析源代码,发现系统本身是可以接收标签名称传递的,例如原来是:misc.php?mod=tag&id=1,也可以改成 misc.php?mod=tag&name=手机维修教程 这样子,当然改成中文并不完美,因为url不友好,于是只需改模板和添加Rewrite规则就能实现,马上动手来实现。
友情提示:
如果你没有使用默认模板,那只需把默认模板下要修改的文件复制到正在使用的模板目录下再进行修改,尽量不要在默认模板上更改,如果正在使用的就是默认模板也没关系,可以把默认模板复制一份,改一下目录名称及相关的参数当一个新的模板来用也是可以的,如果认为这样太麻烦也可以就在默认模板上修改,效果也一样。
首先把template/default/tag/目录复制到新的模板template/你正在使用的模板名称/下,目录里面有两个文件,先改tag.htm。
将
改成这里需要说明的是,中文需要urlencode编码一下,不然在某些浏览器下会获取不到传送的值,搜索是支持urlencode的,所以这点不必担心。
继续改同目录下的tagitem.htm文件
将所有misc.php?mod=tag&id=$id
改为misc.php?mod=tag&name=$tagname
这个文件不需要urlencode,系统已经urlencode了。
接着改贴子内容页的链接,与上面同理,把/template/default/forum/viewthread_node_body.htm文件复制到/template/你正在使用的模板名称/forum/viewthread_node_body.htm。
将misc.php?mod=tag&id=$var[0]
改成
tag-.html
这里也需要urlencode,至此模板已改完。
下面来设置伪静态的rewrite规则,这里以apache的.htaccess文件为例,其它web服务器的规则也差不多,不懂的网上有规则转换的工具,转换一下就是了,这里就不一一细说了。
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tag-(.+)\.html$ misc.php?mod=tag&name=$1&%1
将上面的规则添加到.htaccess文件里面然后更新一下缓存就ok了。