2016-02-11 7 views
0

Windows Server 2008 R2.Перенаправить страницу aspx в другую

У меня установлен 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

в соответствии с вашим заявлением «Я пробовал несколько способов», «что вы попробовали», следует добавить в вопрос. – BNN

+0

Судя по вашему ответу, кажется, что может быть более одного способа выполнить это? Я попытался создать пустое правило и выбрать параметры, которые, по моему мнению, были релевантными, то есть запрошенный URL = Соответствует шаблону, используя точное совпадение (но либо получил ошибку, либо я не смог сохранить). Могли бы вы посоветовать, как вы думаете, будет ли правильный путь? – Computer

ответ

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> 
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"; 
+0

Я не смогу сделать это, так как у меня нет доступа к коду за файлом. Был надеяться сделать это в рамках IIS – Computer

+0

http://blogs.msdn.com/b/wenlong/archive/2007/09/18/how-to-redirect-a-url-in-iis6-iis7-and-in- asp-net.aspx Пожалуйста, перейдите по этой ссылке. –

+0

Я видел эту ссылку, но она перенаправляла каталог на страницу, а не страницу на страницу (если я не пропустил что-то?) – Computer

0

Альтернатива, чтобы добавить что-то вроде этого в web.config вашего asp.net приложение (которое позволит динамические страницы:

<system.webServer> 
<httpRedirect enabled="true" destination="www.mysite.com/content/new/content.aspx?id=1&sid=2" /> 

Я не уверен, Это связано с тем, что я получил это с самого этого сайта.

+0

Я думаю, что перенаправляет весь сайт? Мне нужна только одна страница – Computer