现在thinkphp框架用的人很多,我们都知道tp框架原生的网站目录都是放在public目录下的,一般只有vps或者独立云服务器可以自己修改环境配置文件来自定义网站根目录,但是我们平时做一个简单的网站基本上不会花大价钱买一个独立的云服务器,而是用虚拟主机更多。

但是虚拟主机一般没有更改网站根目录的功能。那怎么解决这个问题呢?今天就来教你一个方法,通过伪静态来将网站根目录指向public目录。

具体按照以下的方法给网站添加伪静态规则就OK 了。

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目录。

 

<IfModule mod_rewrite.c>

Options +FollowSymlinks -Multiviews RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !^/public/

RewriteRule ^(.*)$ /public/index.php [L,E=PATH_INFO:$1]

</IfModule>