2012-02-17 66 views
0

我是新來的笨和使用笨1.7,我創建了一個.htaccess文件的根目錄下的代碼:url_suffix才能在笨不能正常工作

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

除去從URL中的index.php,並添加

$config['url_suffix'] = ".html"; 

config.php文件爲所有頁面提供默認後綴。從那以後,我創建了這個代碼控制器test.php的:

class Test extends Controller{ 

function test(){ 
    parent::Controller(); 
} 

function index(){ 
    $this->load->view('test'); 
} 

}

和觀點也:

<?php 
    echo anchor(current_url(), 'This Page'); 
?> 

當我瀏覽到http://localhost/ci/test.html它工作正常,但是當我點擊鏈接自動生成的錨點()函數在我看來它去http://localhost/ci/index.php/test.html

如何從anchor()函數生成的URL刪除/index.php/?

而且當我指向主頁

本地主機/ CI/index.html的

它讓我看到一個404頁面未找到錯誤,但是當我指出

本地主機/ CI /指數。 php

它工作正常。爲什麼主頁沒有被轉換爲index.html而不是index.php?

回答

2

你必須用htaccess創建一個重寫條件。 要刪除的index.php,將其添加到根目錄.htaccess文件

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

如果您加載測試作爲默認控制器那麼這將是你的基礎URL

本地主機/ CI/ 或 本地主機/ CI /測試/ 或 本地主機/ CI /測試/ index.html的

確保您的config.php文件設置爲這個

$config['index_page'] = '' 

您還應該使用Codeigniter 2.1來獲得正確的PHP 5支持。

而且你的構造功能可按應該像這樣,如果使用PHP 5,否則,你有什麼堅持在PHP 4

public function __construct() 
{ 
    parent::__construct(); 
} 
+0

哇!它非常感謝親愛的。 – 2012-02-17 13:37:59