购买了一个 IIS 环境的虚拟主机,上传 ThinkPHP 项目到虚拟主机上,访问测试域名提示 403.14 找不到默认页,咨询虚拟主机提供商,答复网站根目录下没有默认页文件导致的报错,虚拟主机环境又不支持修改网站根目录地址。于是百度了下发现可以使用伪静态功能来指定二级目录路径

使用httpd伪静态规则设置二级目录
1、首先我们在空间商的主机控制面板开启isapi筛选器使其支持 httpd.ini 伪静态规则
2、替换 httpd.ini 文件,填写如下规则内容
[ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteRule ^(.*)$ /public/$1 [I]
使用web.config设置二级目录
1、在网站根目录下新建一个名字为 web.config 的文件,然后填写如下规则内容(文件编码格式需为utf-8格式编码)
PS:这个需要2008系统以上的IIS才能支持读取网站根目录下的 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read, Script" />
<httpErrors>
</httpErrors>
<staticContent>
</staticContent>
<rewrite>
<rules>
<rule name="已导入的规则 1">
<match url="^(.*)$" />
<action type="Rewrite" url="/public/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>通过以上任何一种办法最终实现访问二级目录下的资源


