2016-11-22 49 views
2

我是codeIgnitor的新手。我在我的索引文件中有一些鏈接。 我已經從index.php的URL所以現在看起來URL刪除像Codeignitor-刪除index.php後如何加載新頁面

http://localhost/app/Loader/demo_page

這如果我的Loader代碼:

class Loader extends CI_Controller { 

    public function __construct(){ 
     parent::__construct(); 
     $this->load->helper('url'); 
    } 
    public function index() 
    { 
     $this->load->view('header'); 
     $this->load->view('center'); 
     $this->load->view('footer'); 
    } 
    public function demo_page() 
    { 
     $this->load->view('demo'); 
    } 
} 

當我點擊這個鏈接,我得到沒有發現錯誤。

現在我該怎麼辦?

我想從url中刪除控制器名稱,並希望顯示漂亮的網址,只有像域名/ app/mydemopage.php。 請幫忙。

+0

如果你這樣做只是爲了搜索引擎友好的URL,然後使用routes.php文件,粘貼在routes.php文件的完整路徑,並定義你想要的網址。 –

+0

是的,我試過,但路由不起作用 –

回答

1

您需要URL重寫模塊才能正常工作。 如何獲得這個工作取決於您使用的Web服務器。

對於Apache,編輯httpd.conf並取消註釋(刪除前導#)以下行,然後重新啓動Web服務器。

LoadModule rewrite_module modules/mod_rewrite.so

添加/編輯.htaccess文件在你的笨根文件夾,插入此。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

如果你得到RewriteEngine敘述這裏不允許錯誤,請確保笨的Web根文件夾允許FileInfo覆蓋在你的網絡服務器配置httpd.conf

AllowOverride FileInfo

+0

我使用的是Apache服務器,我試過但還沒有工作,我得到的對象沒有找到錯誤 –

+0

@ RedEye_0不工作太泛化。您必須通過檢查日誌中的詳細錯誤消息來找出發生了什麼問題。請注意,你不應該刪除項目文件夾中的'index.php'文件。 – josephting

1

添加以下行.htaccess文件。

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php/$1 [L] 
1

您可以使用下面的示例更改路線文件。在字符串我傳遞控制器和函數(方法)名稱。在$ route數組中,我按照喜歡的方式傳遞了漂亮的名字。

#Route file path : CI_project/applications/config/routes.php 

$route['default_controller'] = "Dashboard"; 
$route['contact-us'] = "dashboard/contact_us"; 

但請記住,如果你想讓上面的代碼工作,你必須啓用重寫模塊,並在.htaccess中提供此代碼。

.htaccess文件代碼:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /prjectName/ 
    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
# If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: Pawan Nagar 
<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule>