Fecshop SiteMap

2018-05-24 14:47 更新

Fecshop SiteMap

sitemap是為了方便搜索引擎蜘蛛爬取而生成的xml文件。

配置文件

配置文件為:@console/config/fecshop_local_services/Sitemap.php,您可以通過配置的方式 對該配置文件進行重寫。

return [
    'sitemap' => [
        'class' => 'fecshop\services\Sitemap',
        'sitemapConfig' => [
            /**
             * 對于下面的設置,您可能感覺很啰嗦,域名作為store的key,在store service中已經(jīng)設置,
             * 為什么需要在這里重新搞一套呢?  這樣做是為了更加的靈活
             *
             */
            # appfront入口
            'appfront' => [
                # store的key(域名),
                'fecshop.appfront.fancyecommerce.com' => [
                    'https'         => true,  # false代表使用http,true代表使用https          
                    'sitemapDir'    => '@appfront/web/sitemap.xml', # sitemap存放的地址
                    'showScriptName'=> false,    # 是否顯示index.php ,譬如http://www.fecshop.com/index.php/xxxxxx,當nginx沒有設置重寫,這里需要設置為true,這樣url中會存在index.php,否則會404
                                                # 這個設置對seo來說,設置為false最合適,也就是隱藏 url中index.php ,這種設置需要開啟nginx的url重寫
                ],
                # store的key(域名)
                'fecshop.appfront.fancyecommerce.com/fr' => [
                    'https'         => true,  # false代表使用http,true代表使用https          
                    'sitemapDir'    => '@appfront/web/fr/sitemap.xml', # sitemap存放的地址
                    'showScriptName'=> false,
                ],

                
                'fecshop.appfront.es.fancyecommerce.com' => [
                    'https'         => true,  # false代表使用http,true代表使用https          
                    'sitemapDir'    => '@appfront/web/sitemap_es.xml',
                    'showScriptName'=> false,
                ],
                'fecshop.appfront.fancyecommerce.com/cn' => [
                    'https'         => true,  # false代表使用http,true代表使用https          
                    'sitemapDir'    => '@appfront/web/cn/sitemap.xml',
                    'showScriptName'=> false,
                ],
            ]
        ],
    ],
];

如果您的nginx重寫沒有開啟,那么showScriptName需要設置成true,原因參看上面
配置里面的說明。

上面配置了4個store,(fecshop.appfront.fancyecommerce.com)
里面的各個配置項,在配置后面都有說明。

1.上面的store,就是您在各個入口下面的store,每一個store用不同的 域名或者后綴作為首頁url,您可以這是pc入口,以及手機web入口,因為他們的 首頁url不同,語言不同,進而內(nèi)容不同,因此他們都需要有自己的sitemap文件。 每一個store配置里面都有sitemap的文件路徑地址。

2.生成了sitemap.xml,我們需要通過首頁域名+sitemap.xml作為訪問路徑。 如果在地址下面直接有對應名字的文件,則可以直接訪問,但是名字是其他的名字,就需要nginx 設置了。譬如 fecshop.appfront.es.fancyecommerce.com生成的sitemap文件名字為 sitemap_es.xml,我們需要設置一下,讓url fecshop.appfront.es.fancyecommerce.com/sitemap.xml可以訪問 到sitemap_es.xml

location ~ /sitemap.xml 
{   
    if ($host  ~ .*appfront.es.fancyecommerce.com) {  
        rewrite ^/sitemap\.xml /sitemap_es.xml last;  
    }
}

可以參看我的nginx的配置如下:

server {
    listen     80  ;
    server_name fecshop.appfront.fancyecommerce.com fecshop.appfront.es.fancyecommerce.com;
    root  /www/web/develop/fecshop/appfront/web;
    server_tokens off;
    include none.conf;
    index index.php index.html index.htm;
    access_log /www/web_logs/access.log wwwlogs;
    error_log  /www/web_logs/error.log  notice;
    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include fcgi.conf;
        }


        location ~ /sitemap.xml
        {
            if ($host  ~ .*appfront.es.fancyecommerce.com) {
                    rewrite ^/sitemap\.xml /sitemap_es.xml last;
            }
        }

        
         location /fr/ {
            index index.php;
            if (!-e $request_filename){
                    rewrite . /fr/index.php last;
            }
        }
         location /es/ {
            index index.php;
            if (!-e $request_filename){
                    rewrite . /es/index.php last;
            }
        }


         location /cn/ {
            index index.php;
            if (!-e $request_filename){
                    rewrite . /cn/index.php last;
            }
        }


         location /de/ {
            index index.php;
            if (!-e $request_filename){
                    rewrite . /de/index.php last;
            }
        }


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires      30d;
        }

        
        location ~ .*\.(js|css)?$ {
            expires      12h;
        }

        
}



        

        

        

通過上面的nginx配置

 location ~ /sitemap.xml
        {
            if ($host  ~ .*appfront.es.fancyecommerce.com) {
                    rewrite ^/sitemap\.xml /sitemap_es.xml last;
            }
        }

fecshop.appfront.es.fancyecommerce.com/sitemap.xml 訪問的文件 不是 /www/web/develop/fecshop/appfront/web/sitemap.xml 而是 /www/web/develop/fecshop/appfront/web/sitemap_es.xml 文件。

對于訪問url中路徑和名字與實際文件一致的,不需要在nginx做更改配置。

3.生成xml

通過上面,我們配置好了各個store的參數(shù),我們就可以生成sitemap文件了

執(zhí)行的shell文件為:@fecshop/shell/sitemapGeneral.sh

執(zhí)行完了,就會在配置相應的地方生成對應的sitemap文件。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號