2015-03-31 3 views
0

У меня есть сервер сборки TeamCity, который я использую для CI, работающего через IIS. Мне очень хотелось бы, чтобы ЛЮБОЙ URL-адрес моего домена был перенаправлен на HTTPS-версию URL-адреса.HTTPS перенаправляет из ЛЮБОГО URL-адреса HTTP для моего домена

Я следовал учебник связан здесь: http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/

<system.webServer> 
     <rewrite> 
      <rules> 
      <clear />   


    <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
     <match url="(.*)" negate="true" /> 
     <conditions> 
        <add input="{HTTPS}" pattern="^OFF$" /> 
      </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> 
    </rule> 

    <rule name="Subdirectory HTTP to HTTPS redirect" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url="(^admin/.*)" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="off" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" /> 
    </rule> 

     </rules>   
    </rewrite> 
</system.webServer> 

Кроме того, это текущая версия моего web.config после выполнения этого урока:

Я действительно не уверен, что я «Я делаю неправильно, потому что основные URL-адреса для моего домена, похоже, перенаправляются на https, но многие из поддоменов - всего 404, если вы НЕ ОПРЕДЕЛЕНЫ указать HTTPS. Любая помощь будет оценена!

ответ

0

Попробуйте создать переадресацию протокола JavaScript и привязать новый обработчик для всех прослушивателей HTTP-80 (небезопасных), в которых страница ошибки по умолчанию и документ по умолчанию являются статическим файлом с перенаправлением Javascript. Ниже приведены примеры, в том числе скриншоты (связанные). Документ по умолчанию для INSECURE также должен быть index.htm.

<!DOCTYPE html><html> 
<!-- This is index.htm --> 
<head><script> 
if (window.location.protocol != "https:") { 
    window.location.protocol = "https:"; 
    window.location.reload(); 
}</head></html> 

ASP Redirect решение:
<% Response.Redirect "https://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") %>

PHP Перенаправление решение:
<?php header('HTTP/1.1 302 Found'); header('Location: https://' . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]); ?>

Обработчик конфигурация на сайтах IIS: Handler config

Страница ошибок в незащищенном сайте: Custom error pages

+0

И я буду работать над версией ASP этого времени, и PHP, если вы хотите – NikolaTeslaX

+0

Это сделано, добавлены решения ASP и PHP для ответа. Они ничего не проверяют, не задают никаких вопросов, просто перенаправляют, короткие и сладкие. Если вы используете один из них, соответствующим образом измените тип файла. – NikolaTeslaX

Смежные вопросы