如何将DedeCMS织梦中的Tags标签URL中的中文字符去除并使用标准化URL编码?

avatar
作者
筋斗云
阅读量:0
要将dedecms织梦Tags标签URL去掉中文加密URLEncode采用标准化URL,可以使用以下方法:,,1. 打开/include/arc.archives.class.php文件;,2. 找到function GetTagsUrl($tagname)函数;,3. 在函数内部,将$tagurl = MakeUrl(str_replace(' ', '', $tagname));替换为$tagurl = MakeUrl(rawurlencode($tagname));。,,这样就可以将dedecms织梦Tags标签URL去掉中文加密URLEncode采用标准化URL。

在织梦CMS(DedeCMS)中,Tags标签的URL默认情况下是带有中文加密字符串的形式,虽然Google对中文URL比较友好,但百度对中文URL的支持可能不够理想,为了提升搜索引擎的友好性,尤其是针对百度,可以采用标准化的URL形式,即使用Tag ID来构造URL。

如何将DedeCMS织梦中的Tags标签URL中的中文字符去除并使用标准化URL编码?

修改步骤

1、登录后台

登录到织梦CMS 5.7的后台管理界面。

2、修改tag.lib.php文件

找到include/taglib/tag.lib.php文件,大约在第87行,将以下代码:

```php

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";

```

修改为:

```php

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['id'])."/";

```

3、修改arc.taglist.class.php文件

找到include/arc.taglistview.class.php文件,大约在第70行,将以下代码:

```php

$this>TagInfos = $this>dsql>GetOne("Select * Fromdede_tagindex where tag like '{$this>Tag}'");

```

如何将DedeCMS织梦中的Tags标签URL中的中文字符去除并使用标准化URL编码?

修改为:

```php

$this>TagInfos = $this>dsql>GetOne("Select * Fromdede_tagindex where id like '{$this>Tag}'");

```

4、显示

找到templets/default/taglist.htm文件中的所有{dede:field.title /},将其替换成:

```html

{dede:sql sql="select tag from dede_tagindex where id=~title~"}[field:tag/]{/dede:sql}

```

示例表格

原始代码 修改后的代码
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['id'])."/";
$this>TagInfos = $this>dsql>GetOne("Select * Fromdede_tagindex where tag like '{$this>Tag}'");$this>TagInfos = $this>dsql>GetOne("Select * Fromdede_tagindex where id like '{$this>Tag}'");
{dede:field.title /}{dede:sql sql="select tag from dede_tagindex where id=~title~"}[field:tag/]{/dede:sql}

FAQs

Q1: 为什么需要将Tags标签URL从中文加密改为ID?

A1: 虽然Google对中文URL较为友好,但百度对中文URL的支持可能不足,使用ID构造URL不仅更简洁,还能提升搜索引擎的友好性,特别是针对百度。

Q2: 修改后如何确保标题正常显示?

A2: 在模板文件taglist.htm中,将所有的{dede:field.title /}替换为SQL查询语句{dede:sql sql="select tag from dede_tagindex where id=~title~"}[field:tag/]{/dede:sql},这样就能根据ID获取并显示对应的标签名称。

通过这些步骤,可以有效地优化DedeCMS中的Tags标签URL,使其更加标准化和搜索引擎友好。


如何将DedeCMS织梦中的Tags标签URL中的中文字符去除并使用标准化URL编码?

为了将DedeCMS(织梦)中的Tags标签URL去掉中文加密(URLEncode)并采用标准化URL,我们需要进行以下步骤:

步骤 1:获取当前Tags标签URL

我们需要获取当前DedeCMS系统中Tags标签的URL,这样的URL会包含一些中文参数,并且可能经过URLEncode编码。

步骤 2:解码URLEncode

对于URL中的URLEncode编码的中文参数,我们需要将其解码为原始的中文。

 import urllib.parse def decode_url(url):     return urllib.parse.unquote(url)

步骤 3:标准化URL

我们需要将URL中的中文参数替换为对应的标准化URL编码。

 def standardize_url(url):     return urllib.parse.quote(url)

步骤 4:替换URL中的中文参数

我们将URL中的中文参数替换为标准化后的URL编码。

 def replace_and_standardize(url):     # 假设我们有一个字典,包含需要替换的中文参数及其标准化编码     replacements = {         '中文参数1': 'standardized1',         '中文参数2': 'standardized2',         # ... 更多替换项     }          # 解码URL     decoded_url = decode_url(url)          # 替换并重新编码URL     for chinese_param, standardized_param in replacements.items():         decoded_url = decoded_url.replace(chinese_param, standardized_param)          # 标准化URL     standardized_url = standardize_url(decoded_url)          return standardized_url

示例代码

以下是一个完整的示例代码,展示如何将一个包含中文参数的Tags标签URL进行解码、标准化处理:

 import urllib.parse 假设这是从DedeCMS获取的原始URL original_url = 'http://example.com/tags?中文参数1=值1&中文参数2=值2' 定义一个替换字典 replacements = {     '中文参数1': 'standardized1',     '中文参数2': 'standardized2', } 替换并标准化URL standardized_url = replace_and_standardize(original_url) print("标准化后的URL:", standardized_url)

注意事项

确保替换字典replacements中包含所有需要替换的中文参数及其对应的标准化编码。

如果URL中有多个相同的中文字符串需要替换,确保在替换过程中不会引起重复编码。

此代码示例仅作为处理DedeCMS Tags标签URL的参考,实际应用中可能需要根据具体情况进行调整。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!