我刚刚得到了一个新的CodeIgniter项目,我想我要么有路由问题,要么有.htaccess问题,情况如下:
该项目位于这样一个域: www.example.com,当然,我需要在我的/var/www/html/project文件夹中复制它,因为我不想直接在生产服务器上工作。
因此,我下载了它,并设法使前端部分在我的localhost/project文件夹中很好地工作(实际上,我最终使用了ip地址,因为如果我使用localhost,它会因为某种原因而发送到www.localhost.com/project,尽管我编辑了htacces文件,但我可以使用ip)。
现在,后台办公部分发生了一些非常奇怪的事情,我的意思是,如果我键入127.0.0.1/project/admin,它就会显示为127.0.0.1/project/admin/admin/login,而不是/admin/登录。
而且指向所有css和js文件的链接都很奇怪,无法找到这种奇怪的来源。
以下是一些图片:

因此,正如您在上面的代码中看到的,它看起来是ok的,这是指向css/admin.css文件夹的路径,这是正确的,但是如果您查看控制台,您可以看到它试图加载admin/css/admin.css,这当然是不正确的。
现在,当我输入入口栏: 1270.0.0.1/project/admin时,它会转到127.0.0.1/admin/admin/ login,当然,它会对我产生404,但是如果我指定: 127.0.0.1/project/admin/login,它会加载上面图片中的内容。
下面我将放置配置文件中的路由和内容:
路线:
$route['default_controller'] = "home";
$route['scaffolding_trigger'] = "";
//variables
$lang = "([a-zA-Z]{2}/)?";
$index_lang = "([a-zA-Z]{2}/?)?";
//admin
$route["admin"] = "admin";
$route["admin/(.*)"] = "admin/$1";
From the config:
$config['base_url'] = "";
$config['admin_url'] = $config['base_url']."admin/";
$config['base_path'] = $_SERVER['DOCUMENT_ROOT']."/project/";
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = "index.php";发布于 2016-07-03 15:19:52
我只使用过几次CodeIgniter,但我认为问题的原因是:(使用相对路径)或( b)错误的URL配置
尝试在config中重写
$config['base_url'] = "";至
$config['base_url'] = "http://localhost-or-ip/project-folder-name/";另一种解决方案是修改根目录中的.htaccess文件-当然,可以将config.php修改为$config['base_path'] = $_SERVER['DOCUMENT_ROOT']; (或另一个原始值),您可以尝试在.htacces中重写以下内容:
RewriteBase /至
RewriteBase /project-folder-name/这两种解决方案(如果可以使用的话)都是可用的,但您应该考虑使用虚拟主机,并将本地主机域url设置为:my-domain.com.local,并使用hosts文件通过本地主机127.0.0.1 my-domain.com.local连接此域。
https://stackoverflow.com/questions/38170011
复制相似问题