国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > Pageadmin 系統(tǒng)創(chuàng)建站點(diǎn)地圖sitemap.xml的方法

Pageadmin 系統(tǒng)創(chuàng)建站點(diǎn)地圖sitemap.xml的方法

時(shí)間:2023-07-08 06:15:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-07-08 06:15:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

Pageadmin 系統(tǒng)創(chuàng)建站點(diǎn)地圖sitemap.xml的方法:最近使用了Pageadmin這個(gè)建站系統(tǒng)建了一個(gè)簡(jiǎn)單的網(wǎng)站。為什么沒(méi)有使用PHP+MySQL,是因?yàn)樵瓉?lái)這個(gè)云主機(jī)已經(jīng)有了一個(gè)IIS+SQL組合的網(wǎng)站了,為了統(tǒng)一,所以找了支持這個(gè)平臺(tái)的Pageadmin來(lái)建站。Pageadmin系統(tǒng)的使用可以說(shuō)好,也可以說(shuō)不好。一言難盡。
默認(rèn)系統(tǒng)是不支持自動(dòng)生成站點(diǎn)地圖的,論壇上倒是有說(shuō)可以通過(guò)插件來(lái)實(shí)現(xiàn),但現(xiàn)在用的是免費(fèi)的,暫時(shí)沒(méi)有了插件的支持。官網(wǎng)上有一篇通過(guò)自定義路由實(shí)現(xiàn)百度SiteMap文件-PageAdmin 的幫助,但是其中有些錯(cuò)誤的地方,導(dǎo)致生成不成功的。而百度了全網(wǎng),幾乎都是這個(gè)幫助文檔的COPY,沒(méi)有其他的參考意義。







相關(guān)的代碼如下:

@{ Layout = null; string table = Request.QueryString["table"]; string domain = "http://localhost:800/buildSiteMap.cshtml";//localhost:800改為您的網(wǎng)站域名,必須是外網(wǎng)域名 //生成欄目siteMap if (table=="column") { <!--?xml version="1.0" encoding="utf-8" ?--> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"> @foreach (var item in Html.GetColumnList().Where(c => c.Show == 1 && c.ColumnType <= 2)) { string url = Html.ColumnUrl((int)(item.Id)); <url> <mobile:mobile type="pc,mobile"> <loc>@url</loc> <lastmod>@DateTime.Now.ToString("yyyy-MM-dd")</lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </mobile:mobile></url> } </urlset> } //生成信息表的siteMap else if (!string.IsNullOrEmpty(table)) { <!--?xml version="1.0" encoding="utf-8" ?--> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> @foreach (var item in Html.InfoDataList(new { Table = table, ShowNumber = 1500 })) { <url> <mobile:mobile type="pc,mobile"> <loc>http://www.pageadmin.net/jianzhan/@(item.Id).cshtml</loc> <lastmod>@item.Thedate.ToString("yyyy-MM-dd")</lastmod> <changefreq>weekly</changefreq> <priority>0.5</priority> </mobile:mobile></url> } } </urlset> } else { HttpRequestHelper httpRequestHelper = new HttpRequestHelper(); //生成欄目siteMap文件 IOHelper.CreateFile("/columnSiteMap.xml", httpRequestHelper.Get(domain+"?table=column").Trim(), true); //生成product表的siteMap文件,必須保證news信息表實(shí)際存在 IOHelper.CreateFile("/productSiteMap.xml", httpRequestHelper.Get(domain+"?table=product").Trim(), true); //生成news表的siteMap文件,必須保證news信息表實(shí)際存在 IOHelper.CreateFile("/newsSiteMap.xml", httpRequestHelper.Get(domain+"?table=news").Trim(), true); //更多信息表可以自行添加IOHelper.CreateFile方法,table參數(shù)改為信息表名即可 Response.Write("sitemap文件生成成功!"); }}這里面,有幾個(gè)地方錯(cuò)誤了,附注里面有寫(xiě)出來(lái)的,也有沒(méi)有寫(xiě)出來(lái)的。還是要經(jīng)過(guò)摸索,經(jīng)過(guò)不斷的調(diào)試后,才能找到真正準(zhǔn)確的。

首先,還是按照幫助文檔的指引,在模板文件下的 MyRoute.config 文件中插入路由:

<route urlConstraint="^buildSiteMap.cshtml$" viewPath="siteMap/siteMap.cshtml" httpcacheSolutionId="0" title=""></route>這里的意思就是類(lèi)似于一種快捷方式的作用,把buildSiteMap.cshtml 這個(gè)文件指向真正的文件。嫌麻煩的話(huà)也可以不加,到時(shí)候直接輸入真實(shí)路徑就行了。
其次,在模板目錄的Views目錄下新一個(gè)siteMap/siteMap.cshtml ,內(nèi)容如幫助文件,但是在第4行:


http://localhost:800/buildSiteMap.cshtml
這里把localhost:800 改成你這個(gè)網(wǎng)站實(shí)際的域名,如www.iappi.cn ,否則是運(yùn)行就報(bào)錯(cuò)的。
在15、32行


<mobile:mobile type="pc,mobile">:自適應(yīng)網(wǎng)頁(yè)
這里可以加上去,也可以去掉這2行,這是百度搜索增加的規(guī)則,正常瀏覽器打開(kāi)生成的xml文件會(huì)對(duì)其報(bào)錯(cuò)。
在第33行,埋伏了一個(gè)小雷:


http://www.pageadmin.net/jianzhan/@(item.Id).cshtml
這里生成的鏈接將會(huì)全部是http://www.pageadmin.net/jianzhan/12.cshtml 這樣子的,完全是錯(cuò)誤了,需要按照網(wǎng)站的實(shí)際來(lái)修正。
實(shí)際上Pageadmin系統(tǒng)本身已經(jīng)支持獲得每個(gè)頁(yè)面的真實(shí)URL了,因此,我們僅需要對(duì)url進(jìn)行定義后,再引用url這個(gè)變量就行了。


string url = Html.InfoDataUrl((int)item.ColumnId, (int)item.Id);<loc>@url</loc>
這樣就可以得到相關(guān)的url了。







這樣只要打開(kāi)buildSiteMap.cshtml 就會(huì)生成相應(yīng)的三個(gè)sitemap文件了,可以提交給各搜索引擎。
完整代碼如下:

@{ Layout = null; string table = Request.QueryString["table"]; string domain = "https://www.iappi.cn/buildSiteMap.cshtml";//l改為您的網(wǎng)站域名,必須是外網(wǎng)域名 //生成欄目siteMap if (table=="column") { <?xml version="1.0" encoding="utf-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"> @foreach (var item in Html.GetColumnList().Where(c => c.Show == 1 && c.ColumnType <= 2)) { string url = Html.ColumnUrl((int)(item.Id)); <url> <loc>@url</loc> <lastmod>@DateTime.Now.ToString("yyyy-MM-dd")</lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> } </urlset> } //生成信息表的siteMap else if (!string.IsNullOrEmpty(table)) { <?xml version="1.0" encoding="utf-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> @foreach (var item in Html.InfoDataList(new { Table = table, ShowNumber = 1500 })) { string url = Html.InfoDataUrl((int)item.ColumnId, (int)item.Id); <url> <loc>@url</loc> <lastmod>@item.Thedate.ToString("yyyy-MM-dd")</lastmod> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> } </urlset> } else { HttpRequestHelper httpRequestHelper = new HttpRequestHelper(); //生成欄目siteMap文件 IOHelper.CreateFile("/columnSiteMap.xml", httpRequestHelper.Get(domain+"?table=column").Trim(), true); //生成product表的siteMap文件,必須保證news信息表實(shí)際存在 IOHelper.CreateFile("/productSiteMap.xml", httpRequestHelper.Get(domain+"?table=product").Trim(), true); //生成news表的siteMap文件,必須保證news信息表實(shí)際存在 IOHelper.CreateFile("/newsSiteMap.xml", httpRequestHelper.Get(domain+"?table=news").Trim(), true); //更多信息表可以自行添加IOHelper.CreateFile方法,table參數(shù)改為信息表名即可 Response.Write("sitemap文件生成成功!"); }}存在的問(wèn)題:生成了三個(gè)sitemap.xml ,而不是一個(gè)完整的文件。

其次,生成的鏈接是http的,而不是https的鏈接。這些問(wèn)題有待后續(xù)來(lái)改進(jìn)了。




更多:Pageadmin 系統(tǒng)創(chuàng)建站點(diǎn)地圖sitemap.xml的方法 – 程門(mén)立學(xué)



關(guān)鍵詞:方法,地圖,系統(tǒng),創(chuàng)建

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉