2013-06-26 2 views
0

Что я понимаю о перезаписи URL и перенаправления (просьба указать на мои неправильные предположения)IIS переписать работать как перенаправлять

  • с помощью «перенаправить» вариант для URL http://localhost/Search/VehicleDetails.aspx?id=2 превратить его в http://localhost/Search/2/VehicleDetails.aspx, когда клиент просматривает http://localhost/Search/VehicleDetails.aspx?id=2 и наши переадресацией изменения правил в http://localhost/Search/2/VehicleDetails.aspx, сервер пытается найти VehicleDetails.aspx страницу внутри /Search/2 папки.

  • , но с помощью «переписать» вариант для URL http://localhost/Search/VehicleDetails.aspx?id=2, чтобы превратить его в http://localhost/Search/2/VehicleDetails.aspx, когда клиент просмотра http://localhost/Search/VehicleDetails.aspx?id=2, клиент браузер отображает http://localhost/Search/2/VehicleDetails.aspx, но внутренне в запросе сервера производится в VehicleDetails.aspx странице Поиск в каталоге, а не в VehicleDetails.aspx из/Поиск 2 каталог/...

и моя проблема, я попытался переписать URL, следуя правилу

<rewrite> 
     <rules> 
     <rule name="Search" stopProcessing="true"> 
      <match url="^.*(?:Search/VehicleDetails.aspx).*$" /> 
      <conditions> 
      <add input="{QUERY_STRING}" pattern="id=(\d+)" /> 
      </conditions> 
      <action type="Rewrite" url="/Search/{C:1}/VehicleDetails.aspx" redirectType="Permanent" appendQueryString="false" /> 
     </rule> 
     </rules> 
    </rewrite> 

перенаправляет на /Search/2/VehicleDetails.aspx страницу с HTTP 404.(The resource cannot be found.) .Я хочу, чтобы браузер клиента показывает http://localhost/Search/2/VehicleDetails.aspx но запрос был сделан на /Search/VehicleDetails.aspx ..

А также, как я могу получить значения идентификатора (2 в этом примере) для url как

http://localhost/Search/2/VehicleDetails.aspx от Request.QueryString ["id"] ??

ответ

3

Вы должны выбрать Append QueryString флажок в IIS или добавить вручную, например: -

<action type="Rewrite" url="/Search/{C:1}/VehicleDetails.aspx" 
redirectType="Permanent" appendQueryString="true" /> 

Я заметил, у вас есть этот набор для False который будет поэтому идентификатор не переносится и вероятно, причина для 404 тоже.

+0

thanx для быстрого реагирования. Я также понял, что redirectType = «Постоянный» вариант действителен для type = «Redirect» и удаляет его, но он не работает :(.. и может также уточнить мой запрос на переписывание и переадресация разницы .. является ли мое предположение правильным? –

+0

и почему это правило не работает? –