首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter路由或.htaccess问题

CodeIgniter路由或.htaccess问题
EN

Stack Overflow用户
提问于 2016-07-03 12:37:16
回答 1查看 357关注 0票数 1

我刚刚得到了一个新的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,它会加载上面图片中的内容。

下面我将放置配置文件中的路由和内容:

路线:

代码语言:javascript
复制
$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";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-03 15:19:52

我只使用过几次CodeIgniter,但我认为问题的原因是:(使用相对路径)或( b)错误的URL配置

尝试在config中重写

代码语言:javascript
复制
$config['base_url']     = "";

代码语言:javascript
复制
$config['base_url']     = "http://localhost-or-ip/project-folder-name/";

另一种解决方案是修改根目录中的.htaccess文件-当然,可以将config.php修改为$config['base_path'] = $_SERVER['DOCUMENT_ROOT']; (或另一个原始值),您可以尝试在.htacces中重写以下内容:

代码语言:javascript
复制
RewriteBase /

代码语言:javascript
复制
RewriteBase /project-folder-name/

这两种解决方案(如果可以使用的话)都是可用的,但您应该考虑使用虚拟主机,并将本地主机域url设置为:my-domain.com.local,并使用hosts文件通过本地主机127.0.0.1 my-domain.com.local连接此域。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38170011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档