繁体   English   中英

URL从/default.aspx重写为/

[英]URL Rewrite from /default.aspx to /

我在IIS 6中使用URL Rewriting.NET工具。我在IIS中为default.aspx设置了默认页面内容。 我要做的是让/default.aspx提供301重定向到根目录(www.example.com/default.aspx - > www.example.com)。 我试过关掉默认文件,但没有用。

我希望做的是使用一些URL Rewriting.NET规则来实现这一目标。 有什么想法吗?

编辑:

对不起,我忘了澄清。 如果我从/default.aspx重定向到/打开默认文档(我想让它们保持打开状态)然后我得到一个无限循环的默认 - > / - >默认

最后,我使用带有URL Rewrite模块的IIS 7,这使您可以正确地执行此重定向。

编辑:

规则是

<rule name="Default Redirect" stopProcessing="true">
    <match url="^default\.aspx$" />
    <action type="Redirect" url="/" redirectType="Permanent" />
</rule>

你可以为每个文件夹使用单独的规则,或者你可以使用

<rule name="All Redirect">
    <match url="^(.*\/)*default\.aspx$" />
    <action type="Rewrite" url="{R:1}" />
</rule>

我偶然发现了这个问题,同时试图弄清楚为什么一些IIS安装会重定向/default.aspx,有些会退化成终端循环。

我发现答案是asp.net是否通过'通配符'映射来运行IIS中的所有请求。

简而言之,如果您有一个开箱即用的IIS设置,它将始终将默认文档附加到站点根目录的任何请求上。 因此,当您检查ASP.NET中的Request.Url时,example.com将成为example.com/default.aspx。 因此,如果您检测到这种情况并尝试重定向并返回到example.com,IIS会这样做,请附加/default.aspx,并且您的代码会陷入其自己制作的循环中。

例外情况是,如果您设置通配符映射,以便通过asp.net管道处理所有请求。 在这种情况下,IIS不再将默认文档附加到Request.Url级别的每个请求。 因此,您可以进行重定向。

我把这一切都放在这篇博客文章中: 301从/default.aspx重定向到站点根目录 - 最后一个字 - 但这是几年前编写的,IIS7中的更改可能已经解决了问题,正如当前接受的答案所提供的那样。

但是,如果你正在与这个问题作斗争,那么查看通配符映射状态是正确的起点。

我有同样的问题。 对于那些想知道为什么有人想要这样做的人来说,这是一个SEO的问题。 如果谷歌在最后使用和不使用default.aspx对您的主页编制索引,则PageRank和链接流行度将在两个URL之间分配。 现在,如果您遇到此问题,并且您能够合并这两个URL,那么您可能会获得搜索排名的提升。 要记住的另一件事是,如果你遇到麻烦,你必须使用301重定向谷歌来巩固他们在两个URL之间的索引。 否则你的努力将是徒劳的。

这已经太迟了,因为您已经通过升级到IIS7解决了这个问题。 但我只想补充一点,我为IIS6提出的这个问题的唯一解决方案是添加一个ISAPI过滤器。

我在这里记录了完整的解决方案...... http://swortham.blogspot.com/2008/12/redirecting-default-page-defaultaspx-to.html

如果我理解正确,那么每当有人进入具有该文档的文件夹时,您就不希望显示“default.aspx”。

所以如果他们确实打了它,你想自动重定向到'/'并且只是加载默认文件?

如果是这种情况,那么,如上所述,您将面临无限循环的风险。 第二条评论给你一个答案,但我想扩展到重写引擎你想要的是:

关闭默认文档使用重写引擎注册每个文件夹请求该文件夹时,根据目标规则加载default.aspx文件

听起来不错吗?

我不得不问,你为什么要这样做?

我不确定我明白问题所在。

虽然如果你关闭默认文件然后/将只是指向目录而不是default.aspx页面。

保留默认文档,然后根据default.aspx是否在请求的URL中进行重定向。

好吧,你可以使用常规.net来检查httprequest网址,如果它有“default.aspx”,你可以重定向到“/”,没有无限循环你最好在预加载时执行此操作,然后结束响应,尽量减少处理所需的时间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM