阿里云腾讯云西部数据等虚拟主机空间配置thinkphp5.0程序教程

[复制链接]
查看2595 | 回复0 | 2020-3-21 10:35 | 显示全部楼层 |阅读模式
阿里云腾讯云西部数据等虚拟主机空间配置thinkphp5.0程序教程

因为thinkphp5.0 默认入口是在public目录下,然而虚拟主机并不支持域名绑定到二级栏目上,所以把thinkphp 5.0程序,放到虚拟主机上,需要修改如下几个步骤

1、修改移动入口文件位置,把它移动到根目录下(即htdocs)。
修改index.php入口文件内容

  1. // 定义应用目录
  2. define('APP_PATH', __DIR__ . '/application/');
  3. // 加载框架引导文件
  4. require __DIR__ . '/thinkphp/start.php';
复制代码

这下可以访问了,但点下内页看看,路径重写不生效了。因为缺少了.htaccess文件。
2、把.htaccess文件也移动到根目录下,.htaccess 文件内容如下;至此可能你已经解决了问题。没解决的接下来继续看。

  1. <IfModule mod_rewrite.c>
  2. Options +FollowSymlinks -Multiviews
  3. RewriteEngine on
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  7. </IfModule>
复制代码

3、安全性!因为你将入口文件移到了跟目录,框架下的所有目录已经暴露了。如果apache服务器没处理。那就可以直接访问重要文件。不管他有没有做处理,直接跟目录下的每个目录都来个.htaccess。然后写入deny from all。

4、解决:css、js、图片等静态资源404了。因为移出了public目录,所以文件找不到了。需要替换全部目录路径。
如果你是使用__PUBLIC__,STATIC,CSS,__JS__等来写
那么恭喜你,直接在配置改view_replace_str就行了

  1. 'view_replace_str'  => [
  2. '__PUBLIC__' => '/public',
  3. '__STATIC__' => '/public/static',
  4. '__CSS__' => '/public/static',
  5. '__JS__'  => '/public/static',
  6. ],
复制代码

如果不是,那就全部视图文件,所有用到用到路径的地方全盘替换目录即可

  1. /public/static
复制代码

特别容易忽略的地方是css里面的background路径,和自定义上传路径,请注意。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-16