2016-02-24 4 views
2

Так я пытаюсь скрывать расширение файлов в моих ССЫЛКАХ файла web.config, вот мой код:расширение Скрытия файлов с использованием файла web.config, но исключающий POST запросы

<!-- Remove file extension .asp --> 
    <rule name="RemoveASP" enabled="true" stopProcessing="true"> 
       <match url="(.*)\.asp" /> 
       <action type="Redirect" url="{R:1}" /> 
      </rule> 
      <rule name="AddASP" enabled="true"> 
       <match url=".*" negate="false" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
        <add input="{URL}" pattern="(.*)\.(.*)" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="{R:0}.asp" /> 
      </rule>  
    </rule>   

Однако это вызывает проблемы для моей контактной формы, при попытке использовать Ajax, он просто не удается, и никакие данные не представлены:

var url = "tutors.asp?YS="+YS+"&ORG="+ORG+"&BOTH="+BOTH+"&COM="+COM+"&page=International-Contact"; 
var jqxhr = $.ajax({ 
         url: url, 
         cache: false, 
         type: "POST", 
         data: { fname: fname, lname: lname, role: role, forg: forg, location: location, phone: phone, addinfo: addinfo, email: email } 
          }) 
         .fail(function(){ 
         error = "Oops! There's been a fatal error and the email hasn't sent! Please refresh the page and try again."; 
         $('#error').html(error); 
         return false; 
         }) 
         .done(function(){ 
         $('#form_container').html("<h3>Thank you!</h3><p>Your email has been sent successfully.</p>"); 
         }); 
       }); 

Аякса код представляет tutors.asp но правило делает это так я перенаправлять на URL без расширения осины. Итак, как я могу исключить перенаправление запросов POST?

ответ

0

Вы можете добавить условие к переменной сервера REQUEST_METHOD в свое правило rewrite. Вот ваше правило, ограниченное GET запросами:

<rule name="RemoveASP" enabled="true" stopProcessing="true"> 
    <match url="(.*)\.asp" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_METHOD}" pattern="^GET$" /> 
    </conditions> 
    <action type="Redirect" url="{R:1}" /> 
</rule>