在网站开发中,优化前台显示链接是提升用户体验和搜索引擎优化(SEO)的重要步骤。本文将详细介绍如何将原有的 /tags.php?keywors 链接更改为更友好的 /tags/keywords.html 格式。

首先,我们需要对调用的标签进行修改。具体操作是在 includetaglibtag.lib.php 文件中找到第 87 行:

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

将其更改为以下代码:

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

接下来,需要修改分页代码。打开 include/arc.taglist.class.php 文件,并将分页函数替换为以下内容:

function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno") {
    // ... (省略部分代码)
}

以上代码实现了自定义分页功能,确保生成的链接符合新的 URL 格式。

最后一步是设置伪静态规则。创建一个名为 web.config 的文件,并添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="weather1" stopProcessing="true">
                    <match url="tags/([^-]+).html$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/tags.php?/{R:1}" appendQueryString="false" />
                </rule>
                <rule name="weather2" stopProcessing="true">
                    <match url="tags/([^-]+)-([0-9]+).html$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/tags.php?/{R:1}/{R:2}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

将上述配置文件保存为 web.config 并放置在站点根目录下。

完成以上步骤后,请重新生成 HTML 页面以应用更改。最后,预览页面以确认所有设置均已正确生效。

通过这些步骤,您可以成功地将传统 PHP 链接转换为更美观且对 SEO 更友好的静态化 URL 格式。


注意事项:

在实际操作中,请确保备份原始文件以防万一出现问题时可以快速恢复。此外,根据服务器环境的不同,可能需要调整伪静态规则以适应特定需求。