asp.net - hacer - security asp net mvc
¿Cómo crear Google Sitemap para el sitio de mvc? (5)
Aquí hay una post que podría darle algunas ideas. Básicamente genera un mapa del sitio a partir de los valores de la ruta.
Me preguntaba si alguien ha hecho esto todavía o si tiene algún ejemplo sobre cómo crear un Sitemap de Google para un sitio web de MVC.
Cualquier ayuda o ejemplo sería apreciado.
Estoy hablando de esto: https://www.google.com/webmasters/tools/docs/en/protocol.html
Autoexploración descarada: creé una biblioteca llamada SimpleMvcSitemap después de tener problemas extraños con MvcSiteMapProvider en producción. Puede servir archivos de sitemap desde cualquier método de acción sin ninguna configuración:
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);
}
}
También es compatible con todas las extensiones de Google Sitemap disponibles.
La forma más sencilla sería utilizar cualquiera de los numerosos creadores de sitemap gratuitos que existen: rastrearán su sitio, seguirán los enlaces y generarán un archivo XML de sitemap para usted.
así que aquí está la cosa, usar generadores solo creará un enlace para "todo" en su sitio. Entonces, si tiene, digamos un sitio de tarjeta, y tiene como cien mil artículos de tarjeta, cada uno con su propio enlace y todo, probablemente verá la misma cantidad de enlaces. Si quieres eso, entonces los generadores de sitemap XML son el camino a seguir.
Pero si lo quieres un poco personalizado, puedes hacer esto:
Enumere todas las secciones principales de sus sitios. Esto es fácil de hacer, ya que la mayoría de los MVC están utilizando el tipo de "URL limpias". un poco como "site.com/items/phones"
Crea un documento XML, dependiendo del idioma que estés usando.
Como mínimo, debe tener un documento como este:
<?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>
Para una estructura más avanzada, verifique esto: http://www.google.com/support/webmasters/bin/answer.py?answer=183668
Usé el código de Sitemap de Mike Brind , con un pequeño cambio.
Debe agregar el XNamespace a cada XElement, de lo contrario, Google escupe el dummy.
Aquí está mi versión:
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");
}
Gracias a Mike por publicar el artículo y el código originales.