2016-07-24 6 views
0

Я был над веб-поиском решений для этого, но я могу получить только 1 и 2, чтобы работать.Как получить URL-адрес перезаписи для HTTP-HTTP, а не WWW для WWW для работы

  1. http://www.example.com к https://www.example.com
  2. www.example.com к https://www.example.com
  3. http://example.com к https://www.example.com
  4. https://example.com к https://www.example.com
  5. https://example.com к https://www.example.com
  6. example.com/page.aspx к https://www.example.com/page.aspx

Требования:

  • Все URL быть HTTPS
  • Все URL без WWW в них, чтобы показать WWW
  • Все другие переадресовывает на работу, строки запросов и Params, перенесенные и т.д.

Таким образом, основная проблема заключается в том, что если протокол не указан (http или https), то, если я вхожу example.com/blah, тогда он g ets преобразован в www.example.com/blah, но поместите протокол (http или https) спереди, и он перерывает связь.

Поскольку в настоящее время у меня нет правила переместить URL-адреса не WWW в WWW, то я не уверен, что это делает, если мне нужно это сделать, как я могу заставить его работать с HTTP на HTTPS ,

  • Я попытался положить правила для HTTP, чтобы перейти к HTTPS вместе с правилом не-WWW к WWW, но он не работает (первый пример, вы увидите - нижний пример, что я использую в момент).

  • Я попытался использовать {HTTP_HOST} вместо того, чтобы писать URL моего сайта в части перенаправления правила.

  • Я пробовал разделить правила на 2, один для HTTP-HTTPS и один для не-WWW для WWW.

Однако ничего не работает.

На данный момент я просто использую файл моих хостов и практикую, изменяя правила в файле web.config для сайта в поле «Победа».

У меня есть другие правила, а для www.example.com/plugins например, чтобы перейти на страницу (переписывания) под .aspx, но они не работают либо, если нет в URL не www.

Так что, похоже, перенаправление не WWW-адресов на WWW является проблемой, и я не знаю, как лучше всего сочетать ее с правилами HTTP-HTTPS.

Я пробовал комбо из двух правил, которые покрывают HTTPS/WWW и работает отдельно от 4/5 (не WWW для WWW), это правило.

<rule name="Redirect to HTTPS" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
       <add input="{HTTPS}" pattern="^OFF$" /> 
       <add input="{HTTP_HOST}" pattern="^[^www]" /> 
       </conditions> 
       <action type="Redirect" url="https://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
      </rule> 

Фактическое переключение logicalGrouping="MatchAny" к "MatchAll", кажется, не делают разницы между прочим.

Пока кто-то не вводит URL-адрес как http://example.com/plugins, тогда он отлично работает и перенаправляется на https://www.example.com/plugins.

Не то, что я знаю многих людей, которые на самом деле вводят протокол при вводе ссылок (// также работает), но это, очевидно, старые поисковые системы и встроенные ссылки сайтов, которые мне нужно обрабатывать для дублирования контента.

Может ли кто-нибудь подумать о причине, почему это не работает ИЛИ что я должен попробовать?

У меня есть привязки для обоих портов 80/443 для WWW и без.

Я никогда не нахожу в ответах на такие проблемы, что люди много говорят о настройках IIS, таких как привязки и порты, но я думаю, что они должны, поскольку web.config привязан к приложению URL Redirect, и привязки, очевидно, необходимы для ваших адресов ,

Мне просто кажется странным, что примерное правило, которое я ставлю ранее, работает так же хорошо, как и тот, который упоминает HTTP только HTTPS.

Это то, что я использую в настоящее время. Может быть, IIS что-то делает с www?

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

Я даже изменил порядок привязки таким образом, что не-WWW привязки пошли перед WWW привязок, думая, что, возможно, что-то делать с этим.

Я контролирую свой DNS и моя запись установлена ​​как

DNSEntry - WWW 
Type - A 
Destination - MY IP 

Так что я немного запутался в том, что на самом деле заставляет не-WWW URL, чтобы перейти к WWW URL. В качестве команды, которую я использую в настоящее время в web.config, упоминается только HTTPS.

Я думаю, может быть, что-то есть в IIS (я не эксперт IIS 8), который установил что-то для этого, или установка одного из значений должна была быть доменом без WWW в нем.

Любая помощь будет высоко оценена. Я сомневаюсь, что есть много URL-адресов, указывающих на мой сайт без WWW в любом случае, но было бы хорошо знать, что SEO, чтобы я мог заставить их всех в одном месте, чтобы я не попался на дублированный контент.

ответ