【发布时间】:2017-06-21 03:13:06
【问题描述】:
对于另一个关于在 CodeIgniter url 中删除 index.php 的问题,我深表歉意。我在这里查看了很多答案,但无法解决我的问题。
目前我已经设置了本地开发服务器,以便
-
http://localhost/project/index.php/controller/function/page和 -
http://localhost/project/page
都按预期加载页面。
但是,如果我尝试加载 page/subpage,则只有带有 index.php 的版本有效:
-
http://localhost/project/index.php/controller/function/page/subpage(工作) -
http://localhost/project/page/subpage(不起作用)
第二个不会调用我的控制器,但会产生 CodeIgniter 404 错误页面。这让我怀疑问题出在我的.htaccess 文件中,但我不知道。我不太了解.htaccess 文件。
我的.htaccess 文件包含
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]enter code here
我尝试了人们在其他类似问题上提出的各种排列方式,但没有一种产生任何效果,除了一种产生通用 php 404 页面而不是 CodeIgniter 页面的一种。
我可以做些什么不同的事情来让http://localhost/project/page/subpage 加载?
我的routes.php 文件包含:
$route['default_controller'] = 'Controller';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['(:any)'] = 'controller/index/$1';
我的config.php 文件包含:
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
还有其他设置对我发帖有帮助吗?
【问题讨论】:
-
这是什么
$route['(:any)'] = 'controller/index/$1';??这有意义吗?这也和默认控制器一样... -
@AbdullaNilam 它在那里以便我可以加载localhost/project/page。如果没有该行,默认控制器会在localhost/project 加载主页,但我收到localhost/project/page 的404 错误。也许我可以在那里使用更好的东西,但如果我知道它是什么,我会使用它。有什么建议吗?
标签: php .htaccess codeigniter mod-rewrite routing