Asp.net 如何正确地将带有.aspx的URL重写为不带.aspx的URL?

Asp.net 如何正确地将带有.aspx的URL重写为不带.aspx的URL?,asp.net,Asp.net,我有一个网站目前在其页面上使用.aspx扩展名。它正在进行Joomla转换,.aspx扩展将不再工作。我需要它,这样,如果有人进入.aspx扩展,它将被删除的网址,所以没有在当前网站上的搜索引擎优化打破 例如,我需要 www.arrc.com.php5-17.websitetestlink.com/services/managed-services.aspx 要重写/重定向到 www.arrc.com.php5-17.websitetestlink.com/services/managed-se

我有一个网站目前在其页面上使用.aspx扩展名。它正在进行Joomla转换,.aspx扩展将不再工作。我需要它,这样,如果有人进入.aspx扩展,它将被删除的网址,所以没有在当前网站上的搜索引擎优化打破

例如,我需要 www.arrc.com.php5-17.websitetestlink.com/services/managed-services.aspx 要重写/重定向到 www.arrc.com.php5-17.websitetestlink.com/services/managed-services

这是我的web.config中的内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
     <rules>
      <rule name="Migrate to PHP">
       <match url="^([_0-9a-z-]+)\.aspx" />
       <action type="Redirect" redirectType="Permanent" url="{R:1}" />
      </rule>
      <rule name="Rewrite .aspx">
         <match url="^([_0-9a-z-]+)/?([_0-9a-z-]+)\.aspx" />
         <action type="Redirect" redirectType="Permanent" url="{R:1}/{R:2}" />
      </rule>
     </rules>
    </rewrite>
  </system.webServer>
</configuration>

第一个URL匹配适用于具有类似services.aspx而不是services/managed-services.aspx的URL的任何URL


每当我访问www.arrc.com.php5-17.websitetslink.com/services/managed-services.aspx时,它都会显示一个内部服务器错误,但www.arrc.com.php5-17.websitetslink.com/services.aspx会正确重写。我能做些什么来解决这个问题呢?

他们很贪婪,改变顺序

   <rule name="Rewrite .aspx">
     <match url="^([_0-9a-z-]+)/?([_0-9a-z-]+)\.aspx" />
     <action type="Redirect" redirectType="Permanent" url="{R:1}/{R:2}" />
  </rule>

 <rule name="Migrate to PHP">
   <match url="^([_0-9a-z-]+)\.aspx" />
   <action type="Redirect" redirectType="Permanent" url="{R:1}" />
  </rule>

他们很贪婪,切换顺序

   <rule name="Rewrite .aspx">
     <match url="^([_0-9a-z-]+)/?([_0-9a-z-]+)\.aspx" />
     <action type="Redirect" redirectType="Permanent" url="{R:1}/{R:2}" />
  </rule>

 <rule name="Migrate to PHP">
   <match url="^([_0-9a-z-]+)\.aspx" />
   <action type="Redirect" redirectType="Permanent" url="{R:1}" />
  </rule>

两个潜在问题:

  • 我认为对于重写,它会按顺序对它们产生影响,这意味着第一条规则总是会开始。尝试切换规则的顺序

  • 破折号应在[_0-9a-z-]中正常工作,但请尝试脱离破折号

  • 两个潜在问题:

  • 我认为对于重写,它会按顺序对它们产生影响,这意味着第一条规则总是会开始。尝试切换规则的顺序

  • 破折号应在[_0-9a-z-]中正常工作,但请尝试脱离破折号


  • 哇,我从没想过要这么做,但它成功了!谢谢!哇,我从没想过要这么做,但它成功了!谢谢!