我知道这个问题有很多解决方案。但我已经尝试了很多不同的方法,而且没有帮助。 问题的解释:当我在子文件夹或子域中的主机Web服务器上设置我的CI项目时,它只加载默认控制器。在当地一切正常。
我已尝试禁用所有路由,但没有帮助
尝试编辑:
我的设置:
$config['uri_protocol'] = "REQUEST_URI";
$config['index_page'] = '';
$config['base_url']= 'http://www.mywebsite.nl/klanten';
或子域:
$config['base_url']= 'http://klanten.mywebsite.nl/';
我的htaccess:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|img|stylesheets|javascript)
RewriteCond $1 !^(index\.php|img|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
我正在运行带有CI 2.1.2的php 5.3.15
欢迎任何想法!
答案 0 :(得分:0)
您要加载默认控制器吗?您是否尝试过routes
文件
$route['default_controller'] = 'klanten';
答案 1 :(得分:0)
我做了一些我不想做的事情来修复它。 首先,是的,我尝试更新CI,但这没有做任何事情......
所以我对CI2.1.2的解决方案如下:
Core / URI.php:185
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0)
{
if($_SERVER['REMOTE_ADDR'] == "127.0.0.1" || $_SERVER['REMOTE_ADDR'] == "::1")
{
$uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
}
else
{
$uri = ltrim ($uri,'/');
}
当我将CI网站放在子域中时,这对我来说是一个可行的解决方案,当您将它放在子文件夹中时,其他应该是这样的:
$uri = ltrim ($uri,'/subfolder/');
我希望它可以帮助任何人,如果有更好的方法来实现这一点,请说出来。