Asp.net 使用IIS Rewrite URL for SEO将所有Cold Fusion CFM页面移动到ASP aspx页面
我正在将一个大型数据库驱动的网站从coldfusion.cfm迁移到.NETASPX。我现在差不多完成了,但是我需要在所有coldfusion页面上做301重定向到新的aspx页面,这样google之类的网站就不想失去搜索引擎定位了。所以我打算使用URL重写来实现这一点,但我无法让它工作,大多数时候我只是得到404 基本上,我的新aspx页面都是相同的文件名,只是.cfm被.aspx替换了,有些页面后面可能有一个长的查询字符串,有些则没有 示例: 需要重新映射到 需要重新映射到 该站点本身有数百个页面,有些页面的querystring中有超过8个变量,所以我只想尝试在URL重写中直接映射。我不能做一个规则每页,因为这将需要时间 我目前的尝试是:Asp.net 使用IIS Rewrite URL for SEO将所有Cold Fusion CFM页面移动到ASP aspx页面,asp.net,iis,url-rewriting,coldfusion,iis-8.5,Asp.net,Iis,Url Rewriting,Coldfusion,Iis 8.5,我正在将一个大型数据库驱动的网站从coldfusion.cfm迁移到.NETASPX。我现在差不多完成了,但是我需要在所有coldfusion页面上做301重定向到新的aspx页面,这样google之类的网站就不想失去搜索引擎定位了。所以我打算使用URL重写来实现这一点,但我无法让它工作,大多数时候我只是得到404 基本上,我的新aspx页面都是相同的文件名,只是.cfm被.aspx替换了,有些页面后面可能有一个长的查询字符串,有些则没有 示例: 需要重新映射到 需要重新映射到 该站点本身有数百
<rule name="redirect all requests" stopProcessing="true">
<match url="^(.*)$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^http://www.example.com/(.*).cfm(.*)$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{C:1}.aspx" appendQueryString="true" logRewrittenUrl="true" />
</rule>
这对我来说只是一个404。显然,cfm页面不存在,而aspx页面现在存在。我现在仍然在服务器上安装了cold fusion,在google更新自己之前我不想卸载它(如果出现问题,我可以随时回去)
任何帮助都将不胜感激
谢谢
David文档似乎涵盖了所有这些 从以下文件:
尝试阅读这些文档,您应该能够找到正确的语法,允许您从*.cfm
转换到*.aspx
,传递相同的查询字符串,或根据需要进行翻译 就像这样
<rule name="CFM301ASP" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="^.*\.cfm$" negate="false" ignoreCase="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
</conditions>
<action type="Redirect" url="/yourfile.aspx" appendQueryString="true" redirectType="Permanent" />
</rule>
这仅适用于不存在的CFM(isFile=false)。它将301将导致404的CFMs重定向到您的ASP文件,并附加URL变量。IIS 404页面不命名它尝试加载的文件吗?!?这个例子不是重定向,而是重写。而且它并没有保留所有url变量。