Я был над веб-поиском решений для этого, но я могу получить только 1 и 2, чтобы работать.Как получить URL-адрес перезаписи для HTTP-HTTP, а не WWW для WWW для работы
http://www.example.com
кhttps://www.example.com
www.example.com
кhttps://www.example.com
http://example.com
кhttps://www.example.com
https://example.com
кhttps://www.example.com
https://example.com
кhttps://www.example.com
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, чтобы я мог заставить их всех в одном месте, чтобы я не попался на дублированный контент.