2016-03-30 4 views
0

Я переработал старый веб-сайт форм для ASP MVC web api. Некоторые старые URL-адреса появляются в поисковых системах и форумах со старым URL-адресом веб-форм и строкой запроса, мне нужны эти поисковые запросы по идентификатору строки запроса и перенаправление на новый сайт с именем переменной. Я добавил страницу веб-формы ASP в мое корневое приложение MVC для выполнения перенаправления. Проблема в том, что когда я пытаюсь использовать код на моем локальном хосте, он работает, но затем, когда я пытаюсь использовать его на веб-сайте, он перенаправляется на главную страницу. Это может быть связано с тем, что у меня есть правило перезаписи для перенаправления всех http: https. Я не уверен.Перенаправить HTTP-форму запроса строки в https

тока Бинг URL http://www.domain.com/View.aspx?ID=1

Это работает https://www.domain.com/View.aspx?ID=1 (HTTPS вместо HTTP)

Перенаправление http://www.domain.com/NewPath/SampleName

кодекса следующим

try 
{ 
    string url = "https://domain.com/NewPath/" + getNewName(Request.QueryString["id"]); 
    Response.Redirect(url, false); 
    HttpContext.Current.ApplicationInstance.CompleteRequest(); 
} 
catch (Exception) 
{ 
    Response.Redirect("https://domain.com"); 
} 

правило веб-конфигурации переписывания

<location path="app/views"> 
    <system.webServer> 
     <staticContent> 
     <clientCache cacheControlMode="DisableCache" /> 
     </staticContent> 
    </system.webServer> 
</location> 

<rewrite> 
     <rules> 
     <rule name="SecureRedirect" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="off" /> 
      <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" /> 
      </conditions> 
      <action type="Redirect" url="https://{C:2}" redirectType="Permanent" /> 
     </rule> 
     </rules> 
</rewrite> 

ответ

0

правило перезаписи IIS

<?xml version="1.0" encoding="UTF-8"?> 
 
<configuration> 
 
    <system.webServer> 
 
     <rewrite> 
 
      <rules> 
 
       <rule name="Redirect to Https" stopProcessing="true"> 
 
        <match url="(.*)" /> 
 
        <conditions> 
 
         <add input="{HTTPS}" pattern="^OFF$" /> 
 
        </conditions> 
 
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> 
 
       </rule> 
 
      </rules> 
 
     </rewrite> 
 
    </system.webServer> 
 
</configuration>

Этот URL помог http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/

Смежные вопросы