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
Asp.net 使用IIS Rewrite URL for SEO将所有Cold Fusion CFM页面移动到ASP aspx页面_Asp.net_Iis_Url Rewriting_Coldfusion_Iis 8.5 - Fatal编程技术网

Asp.net 使用IIS Rewrite URL for SEO将所有Cold Fusion CFM页面移动到ASP aspx页面

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替换了,有些页面后面可能有一个长的查询字符串,有些则没有 示例: 需要重新映射到 需要重新映射到 该站点本身有数百

我正在将一个大型数据库驱动的网站从coldfusion.cfm迁移到.NETASPX。我现在差不多完成了,但是我需要在所有coldfusion页面上做301重定向到新的aspx页面,这样google之类的网站就不想失去搜索引擎定位了。所以我打算使用URL重写来实现这一点,但我无法让它工作,大多数时候我只是得到404

基本上,我的新aspx页面都是相同的文件名,只是.cfm被.aspx替换了,有些页面后面可能有一个长的查询字符串,有些则没有

示例:

需要重新映射到

需要重新映射到

该站点本身有数百个页面,有些页面的querystring中有超过8个变量,所以我只想尝试在URL重写中直接映射。我不能做一个规则每页,因为这将需要时间

我目前的尝试是:

<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变量。