如何实现为托管在同一Sitecore解决方案上的每个网站提供不同的robots.txt文件.我想从sitecore项目中读取dinamically robots.txt.
小智 7
你需要按照以下步骤操作:
1)创建并实现自定义通用(.ashx)处理程序.
2)在web.config文件中,将以下行添加到该部分
3)导航到该部分并在此处添加
4)在home项目上你将有"Robots"字段(备注或多行字段,而不是richText字段)你的自定义通用处理程序将如下所示:
public class Robots : IHttpHandler
{
public virtual void ProcessRequest(HttpContext context)
{
private string defaultRobots = "your default robots.txt content ";
string robotsTxt = defaultRobots;
if ((Sitecore.Context.Site == null) || (Sitecore.Context.Database == null))
{
robotsTxt = defaultRobots;
}
Item itmHomeNode = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.StartPath);
if (itmHomeNode != null)
{
if ((itmHomeNode.Fields["Robots"] != null) && (itmHomeNode.Fields["Robots"].Value != ""))
{
robotsTxt = itmHomeNode.Fields["Robots"].Value;
}
}
context.Response.ContentType = "text/plain";
context.Response.Write(robotsTxt);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1604 次 |
| 最近记录: |