2016-07-03 136 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