Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# web.config中带有尾随斜杠301重定向的非www(单重定向)_C#_Asp.net_Url Rewriting_Web Config - Fatal编程技术网

C# web.config中带有尾随斜杠301重定向的非www(单重定向)

C# web.config中带有尾随斜杠301重定向的非www(单重定向),c#,asp.net,url-rewriting,web-config,C#,Asp.net,Url Rewriting,Web Config,我怎样才能301重定向我的URL到非www等价物,并在末尾使用斜杠,只使用单个301重定向(避免重定向链)?我正在使用ASP.net 4.5/C#/Web项目,我的路线注册在RouteConfig.cs中 一种选择是在代码隐藏中检查每个页面的URL并重建URL,但我更喜欢让IIS使用重写规则来处理它 从这张图片(通过chrome,客户端)可以看到,有两个301重定向,因为在我的web.config中,我有两个规则,一个用于更改为小写URL,另一个用于添加尾部斜杠 也许IIS中有一个选项可以阻止

我怎样才能301重定向我的URL到
非www等价物,并在末尾使用斜杠
,只使用单个301重定向(避免重定向链)?我正在使用ASP.net 4.5/C#/Web项目,我的路线注册在
RouteConfig.cs

一种选择是在代码隐藏中检查每个页面的URL并重建URL,但我更喜欢让IIS使用重写规则来处理它

从这张图片(通过chrome,客户端)可以看到,有两个301重定向,因为在我的web.config中,我有两个规则,一个用于更改为小写URL,另一个用于添加尾部斜杠

也许IIS中有一个选项可以阻止重定向,直到所有URL重写都在内部运行。我搜索了它,但还没有找到解决方案。

在web.config中(您需要安装IIS URL重写模块)


EDIT2:如果web.config中不存在url,则在url末尾添加尾随斜杠(您需要安装IIS url重写模块)


EDIT2:如果web.config中不存在url,则在url末尾添加尾随斜杠(您需要安装IIS url重写模块)


EDIT2:如果web.config中不存在url,则在url末尾添加尾随斜杠(您需要安装IIS url重写模块)




EDIT2:如果url不存在,则在url末尾添加尾随斜杠

谢谢,但我认为这仅适用于从www到非www,尾随斜杠不包含在帐户中,也不包含在单个重定向中。我已经编辑了重定向url,现在它添加了尾随斜杠,但添加的斜杠仅在url包含www时才会出现。如果url没有www,它不会附加尾随斜杠。我再次编辑过,现在它会为带有或带有www的URL添加尾随斜杠,并且不会接触没有www和带有斜杠的URL。我在IIS中构建的这些规则用于强制斜杠和规范化URL,问题是当应用两个规则时,会在客户端导致两个301重定向(参见我添加到问题中的图片)。我希望IIS在提交正确的重写URL之前处理所有重写规则。谢谢,但我认为这仅适用于www到非www,尾随斜杠不包含在帐户中,也不包含在单个重定向中。我已编辑了重定向URL,现在它添加了尾随斜杠,但添加的斜杠仅在URL包含www时才会出现。如果URL没有www,它不会附加尾随斜杠。我再次编辑过,现在它会为带有www或带有www的URL添加尾随斜杠,并且不会接触没有www和带有斜杠的URL。我在IIS中构建了这些规则,用于强制斜杠和规范化URL,问题是当应用两个规则时,它会在客户端导致两个301重定向(参见我添加到问题中的图片)。我希望IIS在提交正确的重写URL之前处理所有重写规则。谢谢,但我认为这仅适用于www到非www,尾随斜杠不包含在帐户中,也不包含在单个重定向中。我已编辑了重定向URL,现在它添加了尾随斜杠,但添加的斜杠仅在URL包含www时才会出现。如果URL没有www,它不会附加尾随斜杠。我再次编辑过,现在它会为带有www或带有www的URL添加尾随斜杠,并且不会接触没有www和带有斜杠的URL。我在IIS中构建了这些规则,用于强制斜杠和规范化URL,问题是当应用两个规则时,它会在客户端导致两个301重定向(参见我添加到问题中的图片)。我希望IIS在提交正确的重写URL之前处理所有重写规则。谢谢,但我认为这仅适用于www到非www,尾随斜杠不包含在帐户中,也不包含在单个重定向中。我已编辑了重定向URL,现在它添加了尾随斜杠,但添加的斜杠仅在URL包含www时才会出现。如果URL没有www,它不会附加尾随斜杠。我再次编辑过,现在它会为带有www或带有www的URL添加尾随斜杠,并且不会接触没有www和带有斜杠的URL。我在IIS中构建了这些规则,用于强制斜杠和规范化URL,问题是当应用两个规则时,它会在客户端导致两个301重定向(请参阅我添加到问题中的图像)。我希望IIS在提交正确的重写URL之前处理所有重写规则。
   <system.webServer>
        <rewrite>
            <rules>
                <rule name="noslash" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".+[^\/]$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
                        <add input="{HTTP_HOST}" pattern="yourdomain.com" />
                    </conditions>
                    <action type="Redirect" url="http://yourdomain.com/{R:0}/" />
                </rule>
                <rule name="www" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url=".+\/$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
                    </conditions>
                    <action type="Redirect" url="http://yourdomain.com/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>