2016-04-24 10 views
0

Мы реализовали многоуровневое решение в проекте sitecore. Мы разместили robots.txt в корневом каталоге веб-сайта, чтобы предотвратить сканирование для определенного каталога на сервере Production.Как избежать поиска в поисковой системе, особенно на веб-сайте в Sitecore multisite enviroment

Теперь мы собираемся разместить еще один веб-сайт beta.example.com на производственном сервере, но мы хотим избежать обхода этого поддомена.

Как мы можем достичь, потому что это многосайтовая среда, и есть только один файл robots.txt. Как мы можем заставить этот механизм сканирования работать для конкретного веб-сайта.

Нужно ли писать для этого трубопроводный механизм.

Благодаря

ответ

3

Вы можете добавить пользовательский обработчик, который будет обрабатывать ваш robots.txt следующим образом:

<customHandlers> 
    <handler trigger="robots.txt" handler="RobotsTxtHandler.ashx" /> 
</customHandlers> 

Затем в коде позади вашего ashx, вы можете написать логику, необходимую для загрузите требуемый файл robots.txt.

public void ProcessRequest(HttpContext context) 
{ 
    var database = Factory.GetDatabase("web"); 
    var path = string.Format("{0}{1}", Context.Site.RootPath, Context.Site.StartItem) 
    Item siteRoot = database.GetItem(path) 
    if (siteRoot != null) 
    { 
     context.Response.Clear(); 
     context.Response.ContentType = "text/plain"; 
     context.Response.ContentEncoding = System.Text.Encoding.UTF8; 

     //Write your code to fetch the robots.txt from sitecore item 
    } 

    context.Response.End(); 
} 

Обратите внимание, что отделенный код на ASHx должен наследовать IHttpHandler

Вам нужно также добавить обработчик в web.config под <system.webServer> <handlers> тега.

<add verb="*" path="RobotsTxtHandler.ashx" type="YourNamespace.RobotsTxtHandler, YourAssembly" name="RobotsTxtHandler" /> 

Мое предложение состоит в том, что было бы желательно, чтобы вы храните Robots.txt для каждого сайта в Sitecore пункта вместо корневого каталога веб-сайта. Это позволит каждому сайту иметь собственный robots.txt