Asp.net 重写ASP URL并获取重定向循环
我有一个脚本,它将Asp.net 重写ASP URL并获取重定向循环,asp.net,redirect,url-rewriting,web-config,Asp.net,Redirect,Url Rewriting,Web Config,我有一个脚本,它将example.com/folder/index.php/pagename替换为example.com/pagename 但是从技术上讲,example.com/pagename是不存在的,所以如果有人导航到它,他们会得到404 我试图在我的web.config文件中添加重定向,如下所示: <rewrite> <rules> <rule name="my redirect" stopProcessing="true"> <match u
example.com/folder/index.php/pagename
替换为example.com/pagename
但是从技术上讲,example.com/pagename
是不存在的,所以如果有人导航到它,他们会得到404
我试图在我的web.config文件中添加重定向,如下所示:
<rewrite>
<rules>
<rule name="my redirect" stopProcessing="true">
<match url="pagename" />
<action type="Redirect" url="http://www.example.com/folder/index.php/pagename/" redirectType="permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
但这会导致重定向循环。我注意到,如果我将最终URL更改为不同的内容,如example.com/pagenamearternate
,它就可以正常工作
有人能告诉我是否有一个方便的条件或替代方法来解决这个问题吗?您得到了一个重定向循环,因为您的模式
pagename
也匹配目标URL,其中包含pagename
将匹配url更改为^pagename$
,现在重写规则仅适用于具有确切url的请求:example.com/pagename
,您可能希望允许在pagename之后添加其他文本,然后使用:^pagename
作为匹配模式。
正则表达式中的^
表示字符串的开头,这是因为重写引擎会查看主机名部分之后的所有内容
也考虑重写动作而不是重定向。< /P>将<代码> PGENAME> <代码> > <代码> $> ^ /代码>做了这个把戏!非常感谢!