ThinkCMF入口文件移到根目录

本文详细记录了ThinkCMF入口文件从非根目录移至根目录的过程,包括配置修改、模板路径调整、URL重写及web.config配置,解决了图片显示和页面路径错误等问题。

ThinkCMF入口文件移到根目录

理论上来讲,入口文件最好不要放到根目录。原因就不展开说了

 

之所以把入口文件index.php移动到根目录,是因为客户选的是景安的虚拟空间。

根目录没法自己设置,只能是xxx/web/ 

 

没办法,只能想办法移动了。根据ThinkPHP5.0官方文档,文件本身移动之后,还需要改根目录配置。

index.php line 16 

// 定义CMF根目录,可更改此目录

define('CMF_ROOT', __DIR__ . './');

 原以为改了这些就可以了,没想到根本没有这么简单。

 

改完之后,本地测试报模板路径错误。经过很长时间的调试,找到原因,需修改模板路径。(按道理来讲,模板路径应该不用更改的) 

修改app/config.php line 222

// +----------------------------------------------------------------------
// | CMF 设置
// +----------------------------------------------------------------------
'cmf_theme_path'          => 'public/themes/',
'cmf_default_theme'       => 'simpleboot3',
'cmf_admin_theme_path'    => 'public/themes/',
'cmf_admin_default_theme' => 'admin_simpleboot3',

两处添加public 

修改之后,不报错了,html可以正常显示,但图片无法正常显示。

还需修改simplewind\cmf\lib\storage\Local.php line 50

return cmf_get_root() . '/public/upload/' . $file;

 

 至此,首页可以正常显示。

 

浏览其他页面,提示路径错误。

想到应当将.htaccess等文件一并移到根目录。移动之后,本地正常。

虚拟空间依旧提示路径错误。

虚拟空间是IIS+PHP

猜测原因可能是.htaccess文件没有起作用。

按照ThinkPHP5.0官方文档中URL重写的方法,修改服务器根目录的web.config文件

 

<system.webServer>

的下一行,插入以下内容:

<rewrite>
    <rules>
        <rule name="OrgPage" stopProcessing="true">
            <match url="^(.*)$" />
            <conditions logicalGrouping="MatchAll">
            <add input="{HTTP_HOST}" pattern="^(.*)$" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php/{R:1}" />
        </rule>
    </rules>
</rewrite>

再次测试,正常了。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值