为什么我的 IIS 301 永久重定向重写持久化/不恢复?

Why is my IIS 301 permanent redirect rewrite persistent / not reverting?

对不起我的英语不好。我到处搜索并尝试了我找到的文章但没有工作所有部分。 我有 olddomain.com 没有 ssl 证书。我用 ssl.

买了新域名 newdomain.com

我想:

  1. 使用 https
  2. 将所有 olddomain.com 重定向到 newdomain.com
  3. 重定向https://olddomain.com to https://www.newdomain.com
  4. 重定向所有 http 或 https://newdomain.com to https://www.newdomain.com

我在网络配置中应用了以下代码。当我在服务器中尝试时它工作正常。但是没用 google 控制台,在我的任何浏览器中都包括移动设备。

 <rewrite>
    <rules>
            <clear />
            <rule name="Force WWW, SSL and NewDomain" enabled="true" stopProcessing="true">
              <match url="(.*)" />
              <conditions logicalGrouping="MatchAny">
                    <add input="{HTTP_HOST}" pattern="(http://)?(www)?olddomain\.(com)" />
                    <add input="{HTTP_HOST}" pattern="(https://)?(www)?olddomain\.(com)" />
                    <add input="{HTTP_HOST}" pattern="^[^www]" />
                    <add input="{HTTPS}" pattern="off" />
              </conditions>
              <action type="Redirect" url="https://www.newdomain.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
            </rule>
    </rules>
</rewrite>

在这种情况下,当我尝试:

  1. olddomain.com --> https://olddomain.com or www.olddomain.com --> https://olddomain.com 不起作用。
  2. olddomain.com/tr/ --> https://www.newdomain.com/tr/ 工作正常。
  3. newdomain.com/ --> https://www.newdomain.com/tr/ 工作正常。

这是给你的真实的: 当我打开这个地址时,http://www.gurmeliquid.com/tr/elektronik-sigara-likit-antalya it's change and redirect this address and not correctly working https://www.gurmeliquid.com/tr/elektronik-sigara-likit-antalya

但是,我打开这个地址,http://www.gurmeliquid.com/tr/elektronik-sigara-likit-cesitleri 它的更改并正确重定向此地址 https://www.gurmeliquids.com/tr/elektronik-sigara-likit-cesitleri

所以,发生了什么事,我哪里做错了?

您有本地缓存问题

我觉得你的 web.config 不错 & http://www.gurmeliquid.... is redirecting correctly for me to https://www.gurmeliquids...

要求:

GET /tr/elektronik-sigara-likit-antalya HTTP/1.1
Host: www.gurmeliquid.com

回复:

HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: https://www.gurmeliquids.com/tr/elektronik-sigara-likit-antalya
Server: Microsoft-IIS/10.0
Date: Wed, 06 Oct 2021 13:32:06 GMT
Content-Length: 186

我认为原因是您一直在测试多个 web.config 变体,这些变体之前为 other 端点返回了 301 Moved Permanently

您的浏览器将永久“缓存”此内容,您唯一的解决方法是重定向到同一端点 两次 服务器端或清除本地缓存。

清除缓存因不同浏览器而异,但对于 Chrome,打开开发人员工具 (F12) 中的“网络”选项卡,加载页面,然后右键单击请求并 select “清除浏览器缓存”。刷新并希望它会起作用。

如果这不起作用,您唯一的方法就是重定向循环。

当浏览器检测到重定向循环时,它会尝试清除其缓存并从服务器获取最新的 URI 位置,因此请尝试重定向两次以防您的浏览器缓存了以前的开发 web.configs 指向到其他端点。

先尝试清除浏览器中的缓存,然后再使用临时双重重定向来解决您的问题。