护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

首次使用护卫神的主机系统来搭建运行自己的系统,发现没有办法直接指向框架的public,研究了一下总结出两种方案.如以下:

一.

1,先随意的创建一个主站不做使用.

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

2,在主站下面新建一个子站作为自己实际的项目配置.在主站目录的基础上追加public文件夹.

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

以上是第一种解决方法,很常见,也很好操作.

二.

在护卫神主机大师中打开常用操作里的打开IIS管理器

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

在树形目录中找到你需要设置的项目.进行第二步骤的基本设置.在基本设置中web\后面追加public\保存.进行第三步重启就行了.

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案 

三.

这时候你运行项目,直接域名访问的话 ,你会发现他不会自动识别访问public下的index.php.需要自己在域名后面追加index.php进行访问.这是肯定不符合我们访问的要求的.后来了解了一下原来是url重写(参考:https://blog.csdn.net/qq_17627195/article/details/105509359),伪静态不生效.我们需要在public目录下新建一个web.config文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ThinkPHP_NiPaiYi" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

把以上代码粘贴进web.config就行了,再访问域名,伪静态就生效.