Php web.config重写规则问题?

Php web.config重写规则问题?,php,iis-7,url-rewriting,web-config,Php,Iis 7,Url Rewriting,Web Config,我使用IIS 7 URL重写模块2将.htaccess文件转换为web.config 在apache服务器上使用.htaccess时,一切正常。然而,当我在IIS 7服务器上使用我的web.config时,一切都会变得一团糟 我有3个管理页面:addcharacter.php、deletecharacter.php、editcharacter.php 代码是: <li><a href='admin/addcharacter' title='Add Character'&

我使用IIS 7 URL重写模块2将.htaccess文件转换为web.config

在apache服务器上使用.htaccess时,一切正常。然而,当我在IIS 7服务器上使用我的web.config时,一切都会变得一团糟

我有3个管理页面:addcharacter.php、deletecharacter.php、editcharacter.php

代码是:

    <li><a href='admin/addcharacter' title='Add Character'>Add Character</a></li>
    <li><a href='admin/deletecharacter' title='Delete Character'>Delete Character</a></li>
    <li><a href='admin/editcharacter' title='Edit Character'>Edit Character</a></li>
  • 问题在于,一旦我转到第一个链接:

    www.mywebsite/admin/addcharacter——第一次就可以了

    如果我切换到另一个链接(不管它是什么链接),它会再次附加admin

    www.mywebsite/admin/admin/destination页面

    我认为它与web.config文件有关,因为这是唯一的区别

    以下是我的配置文件的一部分:

       <rule name="Imported Rule 9">
                        <match url="^logout$" ignoreCase="false" />
                        <action type="Rewrite" url="logout.php" />
                    </rule>
                    <rule name="Imported Rule 10">
                        <match url="^admin$" ignoreCase="false" />
                        <action type="Rewrite" url="admin.php" />
                    </rule>
                    <rule name="Imported Rule 11">
                        <match url="^admin/([A-z][a-z]+)/?$" ignoreCase="false" />
                        <action type="Rewrite" url="admin.php?action={R:1}" appendQueryString="false" />
                    </rule>
                </rules>
            </rewrite>
    
    
    

    有什么想法吗?

    我相信问题在于你的链接,而不是重写规则。你不应该使用相对链接,而应该使用绝对链接。当您在
    www.mywebsite/admin/addcharacter
    上并单击链接
    admin/anotherpage
    时,浏览器将发送请求
    www.mywebsite/admin/admin/anotherpage
    。这就是相对链接的工作方式,服务器对此无能为力。但是,在Apache服务器上也应该存在同样的问题

    因此,您的链接应该是:

    <li><a href='/admin/addcharacter' title='Add Character'>Add Character</a></li>
    <li><a href='/admin/deletecharacter' title='Delete Character'>Delete Character</a></li>
    <li><a href='/admin/editcharacter' title='Edit Character'>Edit Character</a></li>
    

  • 这些规则似乎与addcharacter.php、deletecharacter.php或editcharacter.php没有任何关系