【问题标题】:When i use php include the path is not correct but in server it works perfectly当我使用 php 包含路径不正确但在服务器中它工作得很好
【发布时间】:2018-08-30 12:31:50
【问题描述】:

我有一个包含这么多 php 包含和需要的项目,当我将所有文件从服务器下载到我的本地主机时,页面没有正确加载,我发现这是因为包含路径和需要功能

当我在我的视图文件中给出时

require 'models/topic_db.php';

它工作正常,但我的文件夹实际上是这样的 admin/models/topic_db.php 并且在我看来文件位于 admin/views/topic.php

在我的服务器中它是这样工作的

require '../models/topic_db.php';

我不明白问题是什么,但是所有页面都有类似的问题,所以我无法访问每个页面并修复它,所以我需要一个通用的解决方案,有没有一种方法可以在不编辑每个页面的情况下修复它以及每个文件?

记录在案,这也有效require(dirname(__DIR__).'/models/topic_db.php');

但在我所有的代码中,格式都是这样的require '../models/topic_db.php';

我可以使用 .htaccess 修复它吗?

现在我的 .htaccess 看起来像这样

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.php$ index.php [NC]

我的项目在

C:\xampp\htdocs\live\project

Image to get an idea of the folder path

<?php

session_start();
//include ('../../config.php');
include(dirname(__DIR__).'../config.php');

require_once(dirname(__DIR__).'../system/core/coreModel.php');
//require_once '../../system/core/coreModel.php';
$db = new coreModel();
$conn = $db->connectDb();
?>

【问题讨论】:

  • 为您的站点创建一个虚拟主机以在其中运行,该主机与您的 LIVE 站点上的目录结构相匹配。用完 locahost/folder 与您的实际站点的结构不同
  • 我正在使用 xampp 来运行这个 php 项目
  • 检查您的 DocumentRoot ,确保您的本地 Web 服务器指向与服务器相同的位置。
  • 在我的服务器中是 /var/www/html 并且里面有这个管理文件夹
  • 你的 localhost 是在 windows 上运行而服务器是 linux 吗?

标签: php include require relative-path absolute-path


【解决方案1】:

为什么它在服务器中工作,因为有两个点:

require '../models/topic_db.php'; 

表示里面有一个文件夹,应该是:

require 'models/topic_db.php'; 

【讨论】:

  • 在服务器中它工作正常但在本地主机中相同的代码不工作为什么会这样?有什么想法吗?
  • 你使用同一行需要'../models/topic_db.php';在本地主机中?
  • 那么它将被编码在您的 .htaccess 文件中。我猜。请用一些代码编辑你的问题。
  • in .htaccess only this is there Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)\.php$ index.php [NC]
  • 检查一下我已经添加了,够了吗?
猜你喜欢
  • 1970-01-01
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
相关资源
最近更新 更多