.net 是否使用重写模块从页面中删除.aspx?

.net 是否使用重写模块从页面中删除.aspx?,.net,web-config,url-rewriting,.net,Web Config,Url Rewriting,我正在使用ASP.NET重写模块重写到 然后我把它放在里面 将变成: 我该怎么做 我正在GoDaddy上使用IIS7共享Web主机。 <rewrite> <rules> <remove name="RewriteUserFriendlyURL1" /> <remove name="RedirectUserFriendlyURL1" /> <rule name

我正在使用ASP.NET重写模块重写到


然后我把它放在
里面


将变成:

我该怎么做

我正在GoDaddy上使用IIS7共享Web主机。

<rewrite>
  <rules>
            <remove name="RewriteUserFriendlyURL1" />
            <remove name="RedirectUserFriendlyURL1" />
            <rule name="RedirectUserFriendlyURL2" stopProcessing="true">
                <match url="^www\.myserver\.com/(.*)\.aspx$" />
                <conditions>
                    <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
                </conditions>
                <action type="Redirect" url="www.myserver.com/{R:1}" appendQueryString="false" />
            </rule>
            <rule name="RewriteUserFriendlyURL2" stopProcessing="true">
                <match url="^www\.myserver\.com/(.*)$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="www.myserver.com/{R:1}.aspx" />
            </rule>
        </rules>
        <outboundRules>
            <remove name="OutboundRewriteUserFriendlyURL1" />
            <rule name="OutboundRewriteUserFriendlyURL2" preCondition="ResponseIsHtml1">
                <match filterByTags="A, Form, Img" pattern="^(.*)www\.myserver\.com/(.*)\.aspx$" />
                <action type="Rewrite" value="www.myserver.com/{R:1}" />
            </rule>
        </outboundRules>
</rewrite>

这样就可以了-我已经在本地机器上生成了这个vis IIS-将myserver.com更改为您自己的URL。您可以更改正则表达式以实际处理url的x.aspx部分,然后它应该在所有页面上工作

这些是我开始每个项目时使用的标准重写规则。我只对所有页面使用干净的URL(示例一规则适用于www.example.com/about,第二规则适用于www.example.com/product/123)

或IIS 7:

 if (!String.IsNullOrEmpty(Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"]))
        form1.Action = Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"];

还有一件事要记住。。。将所有URL保持小写是个好主意。在URL中混合使用小写/大写字符会为SEO/Google带来重复的内容问题。例如,website.com/About和website.com/About将加载相同的页面,但Google将把它们作为两个单独的页面进行索引。

首先需要删除.aspx(default.aspx)并重定向到default以更改浏览器地址,然后添加.aspx并使用IIS重新连接到页面

<rewrite>
    <rules>
        <clear />
        <rule name="Redirect to clean URL" enabled="true" stopProcessing="true">
            <match url="^([a-z0-9/]+).aspx$" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
            <action type="Redirect" url="{R:1}" />
        </rule>
        <rule name="RewriteASPX" enabled="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="{R:1}.aspx" />
        </rule>
    </rules>
</rewrite>


@stack Nice thx,但我希望所有页面看起来友好,不仅仅是Register.aspx,例如,我还有Login.aspx和Products.aspx以及更多。@stack Me和RegEx不能很好地结合在一起xD,所以如果你能给我举个例子,我会很高兴:)试试更新的规则-这是一个全覆盖的而不是硬编码的寄存器-这需要跨页面测试exclusions@stack我得到“500(内部服务器)错误”.你把myserver.com改成你自己的url了吗?你就是那个人!只要一件事,如果你知道怎么做,现在我需要向他们发送URL,它会在他们看不到的情况下添加aspx,但是如果他们转到.aspx,它是否可能会删除.aspx?更新了答案以包括你的第二个问题。我在我的一个项目中尝试将此用于我的URL重新连接。拆卸加长杆的工作非常完美。然而,我似乎对Ajax的弹出窗口产生了一些问题。在我的模式弹出扩展器和日历弹出扩展器中。我确实对此提出了异议。但到目前为止没有回应。Serge的回答很有启发性,但你的回答很有效。谢谢你,伙计。:)它给了我以下错误描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确。请求的URL:/collections/.aspx
<rewrite>
<rules>
  <rule name="Rewrite default to aspx" stopProcessing="true">
    <match url="^$" ignoreCase="false" />
    <action type="Rewrite" url="default.aspx" />
  </rule>
  <rule name="Rewrite page to aspx" stopProcessing="true">
    <match url="^([a-z0-9/]+)$" ignoreCase="false" />
    <action type="Rewrite" url="{R:1}.aspx" />
  </rule> 
</rules>
</rewrite>
<rule name="Rewrite Product ID" stopProcessing="true">
  <match url="^product/([0-9]+)$" ignoreCase="false"/>
  <action type="Rewrite" url="product.aspx?id={R:1}"/>
</rule>
<rule name="Redirect to clean URL" stopProcessing="true">
  <match url="^([a-z0-9/]+).aspx$" ignoreCase="true"/>
  <action type="Redirect" url="{R:1}"/>
</rule>
 if (!String.IsNullOrEmpty(Request.RawUrl))
        form1.Action = Request.RawUrl;
 if (!String.IsNullOrEmpty(Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"]))
        form1.Action = Context.Request.ServerVariables["HTTP_X_ORIGINAL_URL"];
<rewrite>
    <rules>
        <clear />
        <rule name="Redirect to clean URL" enabled="true" stopProcessing="true">
            <match url="^([a-z0-9/]+).aspx$" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
            <action type="Redirect" url="{R:1}" />
        </rule>
        <rule name="RewriteASPX" enabled="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="{R:1}.aspx" />
        </rule>
    </rules>
</rewrite>