2011-07-19 167 views
0

我無法將變量URL段重新路由到我設置的測試控制器。我想要案例4重定向到我的測試控制器。無法在CI中重新路由URL

案例1(作品)轉到URL HTTP://localhost/2fb/index.php/redirect/test

//輸出 「測試」

案例2(沒有按」 t工作)轉到URL http:// localhost/2fb/redirect/test

//輸出「在此 服務器上未找到請求的URL/2fb /重定向/測試。」

情形3(作品)到URL的http://本地主機/ 2FB/

//輸出 - >載入我的歡迎控制器。

CASE4(不工作)到URL的http://本地主機/ 2FB/ABC

//輸出「所請求的URL/2FB /重定向/測試/ ABC沒有在此找到 服務器。」

我routes.php文件文件看起來像這樣:

$route['default_controller'] = "welcome"; 
$route['404_override'] = ''; 
$route["2fb/(:any)"] = "redirect/test"; 

的redirect.php控制器:

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

class Redirect extends CI_Controller { 

    public function index() 
    {  

    } 
    public function test() 
    { 
     echo "testing";      
    } 

} 

的config.php:

$config['index_page'] = ''; 

的.htaccess:

# Code Igniter Htaccess Rules 
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Rewrite URLs of the form 'x' to the form 'index.php/x'. 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule> 

我相信我的Apache配置是正確的,因爲它考慮到了.htaccess文件的存在。

+0

我修好了。有兩件事,我有我寫的.htaccess文件,並在2fb的根目錄而不是在應用程序文件夾中進行調試。我還在應用程序文件夾中有另一個.htaccess文件,它在其中寫入'全部拒絕'。我刪除了這個文件,並在下面的答案中用指令的幫助將其替換爲自定義文件。 – Chamilyan

回答

0

固定。

  • .htaccess文件不在CI應用程序文件夾中。

  • .htaccess文件有deny from all在裏面。

0

也許嘗試其他的htaccess:

RewriteRule ^$ /index.php [L] 
RewriteCond $1 !^(index\.php|css|img|images|js|scripts|system|uploads|robots\.txt|favicon\.ico|favicon\.png) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

還做你需要:

$route["2fb/(:any)"] = "redirect/test"; 

可你剛纔:

​​

$route["2fb/(:any)"] = "redirect/$1"; 
+0

當我重寫.htaccess文件時,「內部服務器錯誤 服務器遇到內部錯誤或配置錯誤,無法完成您的請求。 請與服務器管理員admin @ localhost聯繫,並告知他們發生錯誤的時間以及您可能已經造成錯誤的任何事情。 有關此錯誤的更多信息可能在服務器錯誤日誌中可用。我將它放入index.php文件所在的2fb的根目錄中。 – Chamilyan