非常简单的URL重写 - 请帮助

时间:2012-05-05 16:28:29

标签: url iis-7 url-rewriting windows-server-2008-r2

Windows Server 2008 R2上的IIS。

我有以下内容(由URL重写2.0生成):

<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^/([^/]+)/?$" />
    <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="?p={R:1}" appendQueryString="true" logRewrittenUrl="true" />

我认为这会导致

http://localhost/56321

将被插入:

http://localhost/?p=56321

任何人都可以看到它的错误吗?它只是给出了404错误。

我还尝试了一个网址重定向规则并且工作正常,因此我知道该模块正在运行。

1 个答案:

答案 0 :(得分:1)

您的解决方案是正确的,但与URL匹配的正则表达式不应以斜杠开头。以下作品:

<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
    <match url="^([^/]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="?p={R:1}" appendQueryString="true" logRewrittenUrl="true" />
</rule>

希望这有帮助。