2016-07-03 98 views
0

我刚买了一台新的笨项目,我认为我有任何路由问题或问题的.htaccess,情况是这样的:CodeIgniter的路由或的.htaccess问题

该项目是在这样一个领域:WWW .example.com,当然我需要它的副本在我的/ var/www/html/project文件夹中,因为我不想直接在生产服务器上工作。

所以我下载了它并设法让我的localhost/project文件夹中的前端部分工作得很完美(实际上我最终使用了ip地址,因为如果我使用本地主机,它会发送到www.localhost.com/project原因虽然我编辑了htacces文件,但我可以使用ip)。

现在事情是在后台部分真的很奇怪,我的意思是,如果我键入127.0.0.1/project/admin它发挥到127.0.0.1/project/admin/admin/login insteand/admin /登录。

而所有的CSS和JS文件的链接都很奇怪,无法弄清楚这个奇怪的来源。

下面是一些图片:

Weird css loading

所以你可以在图片中看到上面的代码看起来确定这就是文件夹的路径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/项目/管理员/登录比加载你在上面的图片中看到的。

下面我会把路线和东西从配置文件:

路线:

$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"; 

回答

1

我跟笨只是几次工作,但我觉得你的问题的原因是)使用相对路径或b)不良URL配置

尝试在配置重写

$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

+0

先生我想感谢您的帮助,将$ config ['base_url']更改为项目文件夹。我是一个白痴,因为我尝试过,但没有把'http://'放在地址前。非常感谢你! – PhpJunior