如何设置thinkphp等入口文件在public目录的设置方法


我司的虚拟主机站点都是默认的wwwroot目录,虚拟主机的默认跟目录是无法修改的。

但是thinkphp程序部分程序在开发的时候没有调整对应的程序入口,就需要网站访问默认指向到Public目录。

为了使用网站可以正常访问,可以在网站根目录下添加相应的伪静态规则,将对应的访问直接调整到Public目录


apache下伪静态规则:

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L] </IfModule>

保存命名为.htaccess(注意有点)

IIS7下伪静态规则:

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

保存命名为web.config,上传到网站wwwroot目录。


由于涉及到伪静态方面的问题,有些应用配置可能不适用,可以在主机控制面板点击设置首页功能按钮,在里面直接输入public/index.php来指定。

image.png