Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用IIS URL重写排除目录?_Url_Iis_Iis 7_Rewrite_Url Rewrite Module - Fatal编程技术网

如何使用IIS URL重写排除目录?

如何使用IIS URL重写排除目录?,url,iis,iis-7,rewrite,url-rewrite-module,Url,Iis,Iis 7,Rewrite,Url Rewrite Module,我有一个domain.com/index.php和一个友好的url规则来重定向domain.com/index.php?s=?请求。我使用带有URL重写插件的IIS Web服务器 上面的工作很好。但是,对管理员目录的请求有问题 我还有domain.com/admin/cloud/index.php,有时需要它来获取或发送数据(通过Ajax)。当规则处于活动状态时,数据不可用,当我删除上述规则时,数据可用 如何使用上述url规则并排除domain.com/admin/内(或到)的所有其他请求 这是

我有一个domain.com/index.php和一个友好的url规则来重定向domain.com/index.php?s=?请求。我使用带有URL重写插件的IIS Web服务器

上面的工作很好。但是,对管理员目录的请求有问题

我还有domain.com/admin/cloud/index.php,有时需要它来获取或发送数据(通过Ajax)。当规则处于活动状态时,数据不可用,当我删除上述规则时,数据可用

如何使用上述url规则并排除domain.com/admin/内(或到)的所有其他请求

这是我当前的规则集:

<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
    <match url="^index\.php$" />
    <conditions>
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
        <add input="{QUERY_STRING}" pattern="^s=([^=&amp;]+)$" />
    </conditions>
    <action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
<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="index.php?s={R:1}" />
</rule>

我尝试了很多方法,包括路径信息。。。但是没有成功。也许有人能给点提示

谢谢

看一看,您可以添加此规则,这样当您不想处理的请求出现时,您可以忽略它并停止处理

它应该放在第一位,以便此规则在其他两个规则之前执行

<rule name="block" stopProcessing="true">
    <match url="^admin/cloud/index.php$" />
    <action type="None" />
</rule>


您好,这里提供了两条规则。哪个规则会弄乱/admin/cloud/index.php请求?好问题。我不知道。看来IIS或URL重写模块会把请求搞砸。我现在将规则分成两部分:1)检查它是否包含“cloud”,2)检查它是否必须重写为index.php(因此从友好url到内部url)。如果检查有效,第一条规则将停止处理(在这种情况下,第二条规则不是Nessary)。。。出于某种原因,第一次检查并不是绕过问题的解决方案。[…][…]只有第二条规则,友好的url才起作用,但管理部分不起作用。只有第一条规则,管理部分工作,但友好的url部分不工作。有时候,它确实有用。。。但几分钟或几个小时后,两个独立规则的解决方案不再有效。我不知道在哪里可以找到“真正的问题”。@Shahdat这些规则是在请求到达ASP.NET引擎之前应用的,所以它应该可以工作。考虑下一个问题,把链接放在这里,这样我就可以看一看。我必须将动作类型更改为CustomResponse