iis 7.5重写为友好的网址问题

时间:2013-02-18 12:02:00

标签: iis url-rewriting iis-7.5 rewrite

我正在从apache迁移到iis,我正面临着重写网址的问题。

我想要所有这样的请求:

http://192.168.0.44/aaa/bbb/ccc/testword

查询这个不友好的网址:

http://192.168.0.44/aaa/bbb/ccc/index.php?word=testword

所以我的web.config是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
                    <match url="^192\.168\.0\.44/aaa/bbb/ccc/([^/]+)/?$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="192.168.0.44/aaa/bbb/ccc/index.php?word={R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

但是当我访问这样的网址时,我收到了404找不到的错误。细节:

Module  IIS Web Core
Notification    MapRequestHandler
Handler StaticFile
Error Code  0x80070002

Requested URL   http://192.168.0.44:80/aaa/bbb/ccc/testword
Physical Path   C:\inetpub\wwwroot\aaa\bbb\ccc\testword
Logon Method    Anonymous
Logon User  Anonymous

我做错了什么?

P.S。那里会有一个域而不是那个ip,只是我想先在本地测试它然后才能实现它。

安装了重写模块2。我可以在iis经理gui看到。

提前感谢。

1 个答案:

答案 0 :(得分:1)

我删除了最高级别的重写规则,并以最简单的方式(没有长路径和IP)在最深的文件夹(ccc)中实现它。它自动化。