2011-05-30 167 views
2

我知道這已被問了一堆,但我不能讓它工作。我試圖從URL中刪除index.php和控制器名稱(我只有一個控制器)。從codeigniter中的url中刪除控制器名稱與路由

到目前爲止,我能夠刪除的index.php,但我還是不能刪除控制器名稱

這裏是我的htaccess文件:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|static|robots\.txt) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

這裏是頂部我的配置文件:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

$config['base_url'] = '/main/'; 

$config['index_page'] = ''; 

而且我在routes文件把這個作爲我的最後一行

我使用BlueHost,並且該網站是該帳戶的插件域。不知道這是否有所作爲。但截至目前,我能夠刪除index.php,但我也想刪除「main」。

任何幫助將是偉大的! 謝謝,

回答

2

我不是在哪裏我可以試試這個看看它是否有效,但如果你離開.htaccess你有它,並在你的路線文件中使用它?

$routes['(:any)'] = "main/$1"; 
+0

試過了......當我去到www。 mysite.com/services而不是www.mysite.com/main/services我剛剛得到一個404頁面沒有找到錯誤 – Bill 2011-05-30 19:36:21

+0

愚蠢的問題,但你的控制器被命名爲主,對不對?另外,你在main.php中有一個index()函數嗎?換句話說,如果您刪除$ routes定義並嘗試以/index.php/main/index訪問該頁面,它是否工作? – 2011-05-30 19:39:00

+0

是的,我的控制器被稱爲main,而main.php中的index()函數只是該網站的主頁。 – Bill 2011-05-30 19:40:38

0

的事情之一,我看到這裏,你可以改變是:

 
$config['base_url'] = 'http://your-site.com/'; 

而在你的routes.php文件

 
$route['default_controller'] = 'main'; 
+0

我有我的路線文件中設置的默認控制器。我有這樣設置基礎url的原因是因爲我在我的本地機器上工作時使用了相對路徑的url helper,一旦我切換了它,我只是刪除了基本url,所以相對路徑都會相同 – Bill 2011-05-31 13:00:33

+0

不介意上面的評論。我不得不等待5分鐘來保存編輯,所以我寧願添加另一條評論: 我也在使用bluehost,我的.htaccess其中一個CI站點是這樣的:http://pastebin.com/xc3ASGFB 。我沒有像你一樣做過任何類似的事情,但爲了追蹤你在CI中獲得的URL,我們需要在類CI_Router和方法_set_routing()和類CI_URI方法_fetch_uri_string中進行一些文本日誌記錄,方法非常自我解釋,你可以查看每個請求的CI獲取的URL。另外,uri_protocol被設置爲REQUEST_URI。 – zokibtmkd 2011-05-31 18:22:52

相關問題