2016-11-22 55 views
0

我会尽可能简单地解释我的问题。codeigniter在URI中找不到文件功能问题

我的索引URI也在工作并显示我的“测试”消息。

https :// domain.com/

其他的URI不起作用并显示消息“未找到文件”。

https :// domain.com/about 

然而,这个URI是工作像我想:

https :// domain.com/index.php/about 

我真的不明白,为什么有人可以帮我吗?谢谢你的帮助 ! :)

我的路线

$route['default_controller'] = 'pages/view'; 
$route['(:any)'] = 'pages/view/$1'; 

我的.htaccess

RewriteEngine on 

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteRule ^pages/view(/)?(.*)$ /$2 [R=301,L] 
RewriteRule ^pages(/)?(.*)$ /$2 [R=301,L] 

RewriteCond $1 !^((user_guide|img|css|js|scripts|fonts)\/.*|index\.php|assets/|robots\.txt|.*\.css) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

我控制器文件名

Pages.php 

我的控制器类

<?php 
class Pages extends CI_Controller { 

    public function view($page = 'home') 
    { 
     echo'test'; 
     exit; 
    } 
} 
?> 

我的配置URI协议

$config['uri_protocol'] = 'REQUEST_URI'; 

(我已经用QUERY_STRING和PATH_INFO试过)我会很高兴能得到您的帮助!

回答

3

请尝试在.htaccess中使用以下内容并进行检查。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
+0

谢谢!它和我想要的完全一样! – Galex

+0

欢迎Galex!很高兴帮助你。 –