You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将.htaccess转换为IIS7的web.config文件(Win10服务器)

IIS 7下.htaccess转web.config配置方案

场景说明

Windows 10系统、IIS 7版本服务器,使用在线工具转换.htaccess为web.config后无法正常运行,以下是对应正确的转换配置及注意事项。

原.htaccess规则逻辑

原配置核心实现两类重写逻辑:

  1. 后台/admin路径的资源转发,以及所有admin请求统一指向backend/web/index.php
  2. 前台静态资源转发,以及非文件/非目录的请求统一指向frontend/web/index.php

转换后的web.config代码

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <!-- 处理admin下的assets资源转发 -->
                <rule name="Admin Assets Rewrite" stopProcessing="true">
                    <match url="^admin/assets/(.*)$" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/admin" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/backend/web/(assets|css)/" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/backend/web/(assets|js)/" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="backend/web/assets/{R:1}" />
                </rule>

                <!-- admin路径请求统一指向后台入口文件 -->
                <rule name="Admin Entry Rewrite" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/admin" />
                    </conditions>
                    <action type="Rewrite" url="backend/web/index.php" />
                </rule>

                <!-- 前台assets资源转发 -->
                <rule name="Frontend Assets Rewrite" stopProcessing="true">
                    <match url="^assets/(.*)$" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/(assets|css)" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/(assets|js)" />
                    </conditions>
                    <action type="Rewrite" url="frontend/web/assets/{R:1}" />
                </rule>

                <!-- 前台非资源/非文件请求统一指向前台入口文件 -->
                <rule name="Frontend Entry Rewrite" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/(frontend|backend)/web/(assets|css)/" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/(frontend|backend)/web/(assets|js)/" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/download/" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/&lt;foldername&gt;/fonts/" negate="true" />
                        <add input="{REQUEST_URI}" pattern="index.php" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="frontend/web/index.php" />
                </rule>
            </rules>
        </rewrite>
        <!-- 对应原.htaccess的Options +FollowSymlinks,允许符号链接访问 -->
        <symlinkValidation enabled="true" />
        <directoryBrowse enabled="false" />
    </system.webServer>
</configuration>

关键配置注意事项

  • 替换占位符:将配置中的<foldername>替换为你的实际网站目录名称
  • 启用URL重写模块:确认IIS已安装并启用URL重写模块(可通过IIS管理器的“模块”功能检查,未安装需下载对应版本的URL重写工具)
  • 权限设置:确保网站目录对IIS进程账号(通常为IUSR或ApplicationPoolIdentity)拥有读取权限

内容的提问来源于stack exchange,提问作者nitin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:45:26