我的网站目前在其网页上使用.aspx扩展名。它正在进行Joomla转换,而.aspx扩展将不再起作用。我需要它,以便如果有人输入.aspx扩展名,它将被删除URL,因此当前网站上没有任何SEO中断。
例如,我需要 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>
第一个网址匹配适用于任何网址,例如services.aspx而不是services / managed-services.aspx
每当我访问www.arrc.com.php5-17.websitetestlink.com/services/managed-services.aspx时,它都会给我一个内部服务器错误,但www.arrc.com.php5-17.websitetestlink.com /services.aspx正确重写。我该怎么做才能解决这个问题?
答案 0 :(得分:1)
他们贪婪,切换顺序。
<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>
答案 1 :(得分:0)
两个潜在问题:
我认为对于重写,它会按顺序击中它们,这意味着第一条规则将始终开始。尝试切换规则的顺序。
短划线应该在[_0-9a-z-]中正常工作,但请尝试转义短划线。