将htaccess重写规则转换为web.config

时间:2017-09-12 15:18:45

标签: php regex .htaccess mod-rewrite iis

我一直在尝试将.htaccess规则转换为web.config但是没有运气,我尝试使用在线工具来做这个并尝试了一些类似的规则但是我什么都没有,这就是我的意思得到:

// .htaccess
RewriteCond %{HTTP_HOST} ^(?:www\.)?oldURL$ [NC]
RewriteRule ^/?e:/folder1/folder2/folder3(/.*)?$ http://newURL$1 [L,NE,R=301,NC]

我在web.config中尝试了这条规则:

<rule name="Redirect files" stopProcessing="true">
      <match url="^/?e:/folder1/folder2/folder3(/.*)?$" ignoreCase="true" />
      <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^(?:www\.)?oldURL$" />
      </conditions>
      <action type="Rewrite" url="http://newURL{R:1}" />
</rule>

有人可以告诉我我在这里缺少什么吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我不知道为什么web.config无法重写URL,但重定向对我有用,我更改了操作行:

<action type="Redirect" url="http://newURL{R:1}" redirectType="Permanent" />

我删除了条件:

<conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="^(?:www\.)?oldURL$" />
</conditions>

现在我的所有文件都使用新网址进行服务。