티스토리 뷰

내가 사용하는 마이크 Brind의 맵 코드를 작은 변화.

모든 XElement에 XNamespace를 추가해야합니다. 그렇지 않으면 Google이 더미를 뱉어냅니다.

내 버전은 다음과 같습니다.

public ContentResult Index()
        {
                    XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
                                const string url = "http://www.website.com/controller/action/{0}";
                                            var items = _db.DataAccessHere();
                                                        var sitemap = new XDocument(
                                                                        new XDeclaration("1.0", "utf-8", "yes"),
                                                                                        new XElement(ns + "urlset",
                                                                                                            from i in items
                                                                                                                                select
                                                                                                                                                    //Add ns to every element.
                                                                                                                                                                        new XElement(ns + "url", 
                                                                                                                                                                                              new XElement(ns + "loc", string.Format(url, i.ItemID)),
                                                                                                                                                                                                                        new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", i.DateAddedUTC)),
                                                                                                                                                                                                                                              new XElement(ns + "changefreq", "monthly"),
                                                                                                                                                                                                                                                                    new XElement(ns + "priority", "0.5")
                                                                                                                                                                                                                                                                                          )
                                                                                                                                                                                                                                                                                                              )
                                                                                                                                                                                                                                                                                                                                );
                                                                                                                                                                                                                                                                                                                                            return Content(sitemap.ToString(), "text/xml");
                                                                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                                                                    

원본 기사와 코드를 게시 한 Mike에게 감사드립니다.

-------------------

뻔뻔한 셀프 플러그 : 프로덕션 에서 MvcSiteMapProvider이상한 문제가 발생한SimpleMvcSitemap 이라는 라이브러리를 만들었습니다 . 구성없이 모든 작업 방법에서 사이트 맵 파일을 제공 할 수 있습니다.

public class SitemapController : Controller
{
    public ActionResult Index()
        {
                List<SitemapNode> nodes = new List<SitemapNode>
                        {
                                    new SitemapNode(Url.Action("Index","Home")),
                                                new SitemapNode(Url.Action("About","Home")),
                                                            //other nodes
                                                                    };
                                                                    
                                                                            return new SitemapProvider().CreateSitemap(nodes);
                                                                                }
                                                                                }
                                                                                

또한 사용 가능한 모든 Google Sitemap 확장을 지원합니다 .

-------------------

가장 쉬운 방법은 여러 무료 사이트 맵 빌더 중 하나를 사용하는 것입니다. 사이트를 크롤링하고 링크를 따라 가며 사이트 맵 XML 파일을 생성합니다.

예를 들면 다음과 같습니다.

-------------------

다음은 몇 가지 아이디어를 얻을 수 있는 게시물 입니다. 기본적으로 경로 값에서 사이트 맵을 생성합니다.

-------------------

그래서 여기에 제너레이터를 사용하면 사이트의 "모든 것"에 대한 링크가 생성됩니다. 따라서 카드 사이트가 있고 10 만 개의 카드 항목이 있고 각각 고유 한 링크와 모든 항목이있는 경우 동일한 양의 링크가 표시 될 것입니다. 원하는 경우 xml 사이트 맵 생성기가 갈 길입니다.

그러나 조금 개인화하고 싶다면 다음과 같이 할 수 있습니다.

사이트의 모든 주요 섹션을 나열하십시오. 대부분의 MVC가 "깨끗한 URL"과 같은 것을 사용하고 있다는 점을 고려하면 쉽게 수행 할 수 있습니다. "site.com/items/phones"와 비슷합니다.

사용중인 언어에 따라 XML 문서를 만듭니다.

최소한 다음과 같은 문서가 있어야합니다.

<?xml version="1.0" encoding="utf-8"?> 
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
          <url> 
                  <loc>http://dragonflysco.com/catalog/finishings/19</loc> 
                        </url> 
                              <!-- more here -->
                                  </urlset>
                                  

고급 구조는 다음을 확인하세요. http://www.google.com/support/webmasters/bin/answer.py?answer=183668



출처
https://stackoverflow.com/questions/1905056
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31