网站地图Sitemap


新建一个sitemap.php, 里面内容如下:

<?php require_once( 'couch/cms.php' ); ?><cms:content_type 'text/xml' /><cms:concat '<' '?xml version="1.0" encoding="' k_site_charset '"?' '>' /><cms:concat '<' '?xml-stylesheet type="text/xsl" href="' k_site_link 'main-sitemap.xsl"?' '>' />
<cms:template title='Sitemap' parent='_modules_' >
    <cms:editable type='group' name='pages' label='Pages' >
        <cms:templates show_hidden='1' order='asc'>
            <cms:if k_template_is_executable='1'>
                <cms:editable type='radio' name="tpl_<cms:show k_template_id />_page" opt_values='In sitemap=1 | Not in sitemap=0' label="<cms:show k_template_title />" group='pages' opt_selected = '1' desc="<cms:show k_template_link />" />
            </cms:if>
        </cms:templates>
    </cms:editable>
    <cms:editable type='group' name='post_types' label='Post Types'>
        <cms:templates show_hidden='1' order='asc'>
            <cms:if k_template_is_clonable='1' && k_template_is_executable='1'>
                <cms:editable type='radio' name="tpl_<cms:show k_template_id />" opt_values='In sitemap=1 | Not in sitemap=0' label="<cms:show k_template_title /> Posts" group='post_types' opt_selected = '1' />
                <cms:if k_template_has_dynamic_folders = '1'>
                    <cms:editable type='radio' name="tpl_<cms:show k_template_id />_folder" opt_values='In sitemap=1 | Not in sitemap=0' label="<cms:show k_template_title /> - Folder Views" group='post_types' opt_selected = '0' />
                </cms:if>
            </cms:if>
        </cms:templates>
    </cms:editable>
    <cms:editable type='group' name='post_excludes' label='Exclude Posts'>
        <cms:editable type='text' name='excluded_posts' label='Exclude Posts' desc='You can exclude posts by entering a comma separated string. E.g.: 1,2,99,100' validator="regex=/^\d+(,\d+)*$/"/>
    </cms:editable>
</cms:template>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
            

   <cms:templates show_hidden='1' order='asc' > 
        <cms:if k_template_is_clonable="1" && k_template_is_executable="1">
            <cms:if "<cms:get "tpl_<cms:show k_template_id />_page" />">
                <url>
                    <loc><cms:show k_template_link /></loc>
                    <lastmod>
                        <cms:pages limit='1' masterpage=k_template_name orderby='modification_date'>
                            <cms:date "<cms:if k_page_modification_date='0000-00-00 00:00:00'><cms:show k_page_date /><cms:else /><cms:show k_page_modification_date /></cms:if>" format='Y-m-d' />
                        </cms:pages>
                    </lastmod>
                    <changefreq>daily</changefreq>
                </url>
            </cms:if>
            <cms:if "<cms:get "tpl_<cms:show k_template_id />" />">
                    <cms:pages masterpage=k_template_name>
                        <cms:php>
                            global $CTX;
                            $array = array(<cms:show excluded_posts />);
                            $post_id = $CTX->get( 'k_page_id' );
                            $CTX->set ( 'excluded', '0' );
                            if (in_array($post_id, $array)) { $CTX->set ( 'excluded', '1' );}
                        </cms:php>
                        <cms:if excluded='0'>
                             <url>
                                <loc><cms:show k_page_link /></loc>
                                <lastmod>
                                    <cms:date "<cms:if k_page_modification_date='0000-00-00 00:00:00'><cms:show k_page_date /><cms:else /><cms:show k_page_modification_date /></cms:if>" format='Y-m-d' />
                                </lastmod>
                                <changefreq>daily</changefreq>
                             </url>
                         </cms:if>
                    </cms:pages>
            </cms:if>
            <cms:if "<cms:get "tpl_<cms:show k_template_id />_folder" />">
                <cms:folders masterpage=k_template_name>
                         <url>
                            <loc><cms:show k_folder_link /></loc>
                            <lastmod>
                                <cms:pages limit='1' masterpage=k_template_name orderby='modification_date'>
                                    <cms:date "<cms:if k_page_modification_date='0000-00-00 00:00:00'><cms:show k_page_date /><cms:else /><cms:show k_page_modification_date /></cms:if>" format='Y-m-d' />
                                </cms:pages>
                            </lastmod>
                            <changefreq>daily</changefreq>
                         </url>
                </cms:folders>
            </cms:if>
        <cms:else />
            <cms:if k_template_is_executable='1'>
                <cms:if "<cms:get "tpl_<cms:show k_template_id />_page" />">
                    <url>
                        <loc><cms:show k_template_link /></loc>
                        <lastmod>
                            <cms:query sql="SELECT p.modification_date FROM dpcn_couch_pages p WHERE p.template_id = '<cms:show k_template_id/>'">
                                <cms:date "<cms:if modification_date='0000-00-00 00:00:00'><cms:show k_page_date /><cms:else /><cms:show modification_date /></cms:if>" format='Y-m-d' />
                            </cms:query>
                        </lastmod>
                        <changefreq>daily</changefreq>
                    </url>
                </cms:if>
            </cms:if>
        </cms:if>
   </cms:templates>
</urlset>
<?php COUCH::invoke(); ?>
 

然后运行此文件 https//www.yourdomain.com/sitemap.php
刷新后台可以设置。

给搜索引擎提交此网址即可。

但是百度还有一些国产搜索引擎不可以提交此网址,必须要sitemap.xml怎么办。
当然这个网址并非以xml结尾的,google也并不要求必须xml结尾,但您确实需要的话,

我们还有.htaccess文件可以操作伪静态

添加以下规则即可:

RewriteRule ^sitemap\.xml$ sitemap.php [L]

sitemap.php文件运行后,相当于一个模块会自动生成标准xml格式的网站地图
访问地址为,http://www.xxxx.com/sitemap.php
可以启用伪静态:http://www.xxx.com/sitemap

main-sitemap.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" 
                xmlns:html="http://www.w3.org/TR/REC-html40"
                xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
                xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>XML Sitemap</title>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
                <script type="text/javascript" src="http://tablesorter.com/jquery.tablesorter.min.js"></script>
                <script    type="text/javascript"><![CDATA[
                    $(document).ready(function() { 
                        $("#sitemap").tablesorter( { widgets: ['zebra'] } ); 
                    });
                ]]></script>
                <style type="text/css">
                    body {
                        font-family: Helvetica, Arial, sans-serif;
                        font-size: 13px;
                        color: #545353;
                        background:#336666;
                        margin:0;
                    }
                    table {
                        border: none;
                        border-collapse: collapse;
                    }
                    #sitemap tr{
                        border-bottom:1px solid #eee;
                    }
                    #sitemap tr.odd {
                        background-color: #eee;
                    }
                    #sitemap tbody tr:hover {
                        background-color: #ccc;
                    }
                    #sitemap tbody tr:hover td, #sitemap tbody tr:hover td a {
                        color: #000;
                    }
                    #content {
                        margin: 0 auto;
                        width: 1000px;
                        background:#fff;
                        padding:16px;
                    }
                    #content h1{
                        font-weight:100;
                    }
                    .expl {
                        margin: 10px 3px;
                        line-height: 1.3em;
                    }
                    .expl a {
                        color: #da3114;
                        font-weight: bold;
                    }
                    a {
                        color: #000;
                        text-decoration: none;
                    }
                    a:visited {
                        color: #777;
                    }
                    a:hover {
                        text-decoration: underline;
                    }
                    td {
                        font-size:11px;
                    }
                    th {
                        text-align:left;
                        padding-right:30px;
                        font-size:11px;
                    }
                    thead th {
                        border-bottom: 1px solid #000;
                        cursor: pointer;
                    }
                </style>
            </head>
            <body>
                <div id="content">
                    <h1>XML Sitemap</h1>
                    <p class="expl">
                        Dynamically generated by <a href="www.couchcms.com">CouchCMS</a>, this is an XML Sitemap, meant for consumption by search engines.
                    </p>
                    <p class="expl">
                        You can find more information about XML sitemaps on <a href="http://sitemaps.org">sitemaps.org</a>.
                    </p>
                    <p class="expl">
                        This sitemap contains <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/> URLs.
                    </p>            
                    <table id="sitemap" cellpadding="3">
                        <thead>
                            <tr>
                                <th width="75%">URL</th>
                                <th width="10%">Change Freq.</th>
                                <th width="10%">Last Change</th>
                            </tr>
                        </thead>
                        <tbody>
                            <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
                            <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
                            <xsl:for-each select="sitemap:urlset/sitemap:url">
                                <tr>
                                    <td>
                                        <xsl:variable name="itemURL">
                                            <xsl:value-of select="sitemap:loc"/>
                                        </xsl:variable>
                                        <a href="{$itemURL}">
                                            <xsl:value-of select="sitemap:loc"/>
                                        </a>
                                    </td>

                                    <td>
                                        <xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
                                    </td>
                                    <td>
                                        <xsl:value-of select="sitemap:lastmod"/>
                                    </td>
                                </tr>
                            </xsl:for-each>
                        </tbody>
                    </table>
                </div>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

文件也要传到sitemap.php同级目录,即根目录

最后记得网站config.php里开启缓存,这样我们的网站和静态网站一样快。