iis 将.htaccess转换为web.config

nom7f22z  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(185)

我正在使用IIS-7,并且正在将一个站点从基于linux和apache的服务器环境中迁移过来。我知道web.config和. htaccess做的工作是一样的。我正在寻找将下面的行从我的.htaccess文件转换到web.config文件。我应该从哪里开始呢?

Options +FollowSymlinks
RewriteEngine On
RewriteRule ([A-Za-z0-9/_-]+).(jp(e?)g|gif|png)$ thumb.php?src=../../uploads/default/files/$1.$2&size=160x90
hjqgdpho

hjqgdpho1#

要将规则从.htaccess转换为web.config,您可以使用IISURL重写模块的导入功能:
1.转到IIS管理器
1.在树中单击您的站点
1.在功能视图中双击URL重写
1.单击“操作”面板中的导入规则
1.将.htaccess规则粘贴到重写规则文本框中,您将在下面看到转换后的规则。
More info有关此功能的信息。
例如,您的规则将转换为以下规则:

<rewrite>
  <rules>
    <rule name="Imported Rule 1">
      <match url="([A-Za-z0-9/_-]+).(jp(e?)g|gif|png)$" ignoreCase="false" />
      <action type="Rewrite" url="thumb.php?src=../../uploads/default/files/{R:1}.{R:2}&amp;size=160x90" appendQueryString="false" />
    </rule>
  </rules>
</rewrite>
jaql4c8m

jaql4c8m2#

只需在记事本上创建一个web.config文件,或者编辑根文件夹中的文件,然后复制并粘贴以下内容:

<?xml version="1.0" encoding="UTF-8"?> 
  <configuration> 
  <system.webServer> 
    <rewrite> 
      <rules> 
        <rule name="Remove index.php rule" stopProcessing="true"> 
          <match url=".*" ignoreCase="false"/> 
          <conditions> 
            <add input="{URL}" pattern="^/(media|skin|js)/" ignoreCase="false" negate="true" /> 
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
          </conditions> 
          <action type="Rewrite" url="index.php" /> 
        </rule> 
      </rules> 
    </rewrite> 
  </system.webServer> 
</configuration>

参考:https://gist.github.com/sabbour/e49b3ac9e1438c93d5fb

相关问题