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



对不起,我的英语不好。我到处搜索并尝试了我找到的文章,但不是所有部分都有效。我有一个没有ssl证书的olddomain.com,我买了一个带ssl的新域名newdomain.com。

我想:

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

我在web-config适用以下代码。当我在服务器上尝试时,它的工作正常。但不能在谷歌控制台和我的任何浏览器包括移动。

<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或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它改变和重定向这个地址,并没有正确工作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..。是否正确重定向到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变化,这些变化之前返回了其他端点的301 Moved Permanently

您的浏览器将永久"缓存";你唯一的方法就是重定向到相同的端点两次服务器端或清除本地缓存。

清除缓存因浏览器而异,但对于Chrome,请打开"网络"。选项卡(F12),加载页面,然后右键单击请求并选择"清除浏览器缓存"。刷新一下,希望能行。

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

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

在使用临时双重定向解决问题之前,请先尝试清除浏览器中的缓存。

最新更新