Windows Server 2008 R2。
我已在我的服务器上安装了URL Rewrite。我在同一个网站内将一个页面重定向到另一个页面时遇到了困难,例如。
我想重定向
www.mysite.com/content/old/content.aspx
到
www.mysite.com/content/new/content.aspx?id=1&sid=2
我已经尝试了一些方法来实现这一目标但事实证明比我想象的更难。我怎么能只重定向一页呢?
我已经尝试了
<rewrite>
<rewriteMaps configSource="Web.RewriteMaps.config"/>
<rules>
<rule name="Old Page Redirects" stopProcessing="true">
<match url=".*"/>
<conditions>
<add input="{OldPages:{REQUEST_URI}}" pattern="(.+)"/>
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
在我的配置文件中我有
<rewriteMaps>
<rewriteMap name="OldPages">
<add key="/content/old/content.aspx" value="/content/new/content.aspx?id=1&sid=2" />
</rewriteMap>
</rewriteMaps>
答案 0 :(得分:0)
您可以使用Response.Redirect("www.mysite.com/content/new/content.aspx?id=1&sid=2");
将此代码写入您要使用的任何事件中。
例如:
protected void btnConfirm_Click(object sender, EventArgs e)
{
Response.Redirect("www.mysite.com/content/new/content.aspx?id=1&sid=2");
}
我们也可以使用javascript进行导航。
window.location = "window.location = "SomePage.aspx";
答案 1 :(得分:0)
另一种方法是在你的asp.net应用程序的web.config中添加这样的东西(这将允许动态页面:
<system.webServer>
<httpRedirect enabled="true" destination="www.mysite.com/content/new/content.aspx?id=1&sid=2" />
我不确定这一点。因为我从这个网站本身得到了这个。请试一试。
答案 2 :(得分:0)
最终找到了应该如何做的事。
<rewrite>
<rules>
<rule name="redirect single page" patternSyntax="ExactMatch" stopProcessing="true">
<match url="old.aspx" />
<action type="Redirect" url="URL/page.aspx" appendQueryString="false" />
</rule>
</rules>
</rewrite>