Конфигуриране на групови правила (част 1) - Windows Server 2008 R2

Преминахме към HTTPS в нашия стар сайт ASP.NET преди около месец. Вече бяхме внедрили пренасочване с HTTP код на състоянието 301 „Преместено за постоянно“ за остарели aspx ресурси във файла Global.asax на приложението, преди да преминем към HTTPS, така че добавихме още няколко реда към алгоритъма за пренасочване в метода Application_BeginRequest, за да пренасочим всички заявки към aspx страници към техните HTTPS колеги. Основната част на текущата версия на този алгоритъм изглежда по следния начин (вместо примерния домейн се използва "example.com"):

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) Dim host_requested As String = Request.Url.AbsoluteUri ' Save the original request string to know whether we need to redirect Dim host_to_redirect As String = host_requested ' Prepare for analysis - remove the protocol and domain For Each sRoot In m_asPossibleRoots If host_to_redirect.StartsWith(sRoot, StringComparison.OrdinalIgnoreCase) Then host_to_redirect = host_to_redirect.Substring(sRoot.Length) Exit For End If Next ' Remove 'home/' if any Dim sHome As String = 'home/' If host_to_redirect.StartsWith(sHome, StringComparison.OrdinalIgnoreCase) Then host_to_redirect = host_to_redirect.Substring(sHome.Length) End If ' Redirect old product pages and articles If host_to_redirect.StartsWith('outdated-resource-folder1', StringComparison.OrdinalIgnoreCase) Then host_to_redirect = 'resource1.aspx' ElseIf host_to_redirect.StartsWith('outdated-resource-folder2', StringComparison.OrdinalIgnoreCase) Then host_to_redirect = 'resource2.aspx' ' ElseIf ' ... processing other outdated resources End If ' ... other manipulations with host_to_redirect ' Add the required protocol and domain host_to_redirect = 'https://example.com/' + host_to_redirect ' If we need to redirect, do it If (host_to_redirect <> host_requested) Then ' also provides a 301 HTTP status code in the response Response.RedirectPermanent(host_to_redirect) End If End Sub 

Също така добавихме HTTPS версията на нашия уебсайт към Google Webmaster Tools и подобни ресурси, работещи с нашия уебсайт. Всичко работи добре, но наскоро се оказа, че един от инструментите за уеб анализ, който използваме, определя основния протокол на нашия ресурс (HTTP или HTTPS), като изпраща заявки до example.com/robots.txt и чете протокола в отговора . Разбира се, всички тези заявки към robots.txt на нашия уебсайт все още се обработват като HTTP, защото не (и не можахме) да пренасочим кода за този ресурс, който не е ASP.NET в Global.asax.

Като имаме всичко това, основният въпрос е следният: Трябва ли да приложим HTTPS пренасочване за robots.txt, ако сме преминали към HTTPS в нашия уебсайт ASP.NET? Може ли да повлияе на SEO и подобни неща? Не се занимавахме с това, тъй като изглежда, че това не е необходимо за Google & Bing WMT, Google Analytics и подобни инструменти.

Ако обаче трябва да внедрим HTTPS пренасочвания за robots.txt, трябва ли да направим това за други не-ASP.NET ресурси като sitemap.xml и други подобни? И кой е най-добрият метод за прилагане на това в нашия проект ASP.NET? Както разбирам, можем да направим това само в web.config, но това може да означава, че трябва да преместим и логическата част на HTTPS за пренасочване от Global.asax към web.config. Дали тази двустепенна логика за пренасочване ще работи безпроблемно?

Ако искате да стартирате уебсайта си чрез SSL, трябва да изпратите всичко през SSL, в противен случай защитата все още може да бъде нарушена. Това означава, че всички статични файлове като css, javascript, images, robots.txt и вашата sitemap.xml трябва да бъдат заредени през SSL.

Най-добрият начин да се уверите е да използвате URL Rewrite в IIS. Може да се наложи да го инсталирате, ако не го виждате никъде в IIS Manager. Пренасочванията могат лесно да бъдат конфигурирани в уеб конфигурацията:

<?php                      ?> var13 ->

Заглавката на HSTS казва на вашия браузър да не изисква никакъв друг ресурс на вашия сайт чрез HTTP и незабавно да го заявява по HTTPS. (В случай, че вашият HTML код все още свързва ресурс с HTTP)

  • Тази схема с HSTS ще работи ли заедно с правилата за пренасочване, кодирани в Global.asax (някаква тръба)?
  • Разбирам, че трябва да предаваме цялото съдържание на сайта, използвано за изобразяване на страници, чрез HTTPS (css, javascript, изображения), но защо трябва да използваме HTTPS за специални текстови ресурси като robots.txt и sitemap.xml, прочетени от ботове на търсачките само? И може да искаме да разполагаме с някои ресурси, хоствани на нашия уебсайт, които други потребители могат да изтеглят със специални тайни HTTP връзки, които не са достъпни за обществеността.Защо трябва да ги предоставяме само чрез HTTPS?
  • @TecMan Не си затруднявайте, поставете цялата логика за пренасочване на едно място: файла web.config, освен ако не се нуждаете от автоматизиран начин за генериране на пренасочванията.
  • @TecMan Каква причина имаш, за да оправдаеш използването на HTTP? Това е като да заключите вратата си, но да държите прозорец отворен.
  • 1) Google вижда HTTP и HTTPS URL адресите като 2 различни сайта; 2) Затруднявате себе си, като създавате изключения от правилата за пренасочване; 3) Бисквитките ще се виждат през незащитената връзка, която потенциално застрашава сигурността и вероятно съм пропуснал куп други проблеми със сигурността.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?