.htaccess CodeIgniter URL重写问题
所以基本上我有相同的问题描述和。我尝试了所描述的一切(还有更多…),但无论如何。这是我的.htaccess:.htaccess CodeIgniter URL重写问题,.htaccess,codeigniter,.htaccess,Codeigniter,所以基本上我有相同的问题描述和。我尝试了所描述的一切(还有更多…),但无论如何。这是我的.htaccess: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 我尝试了各种方法,比如在“index.php”之前添加“/”,或者在“index.php”之后不添加“?”
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
我尝试了各种方法,比如在“index.php”之前添加“/”,或者在“index.php”之后不添加“?”,但是没有任何改变
在开发环境中,我们有完全相同的文件,但在进入生产环境时,我无法让index.php消失。这两个环境之间的唯一区别是它们在各自服务器上的位置(…/public_html/APP与…/public_html/sub-domains name/APP),我认为这两者没有关系,但在移动应用程序时,我已经遇到了一些CI问题,因此可能存在一些问题
最后,这里是config.php中的相关行:
$config['base_url'] = "http://www.domain.com/";
$config['index_page'] ='';
$config['uri_protocol'] = "AUTO";
编辑
另外,由于生产和开发环境在同一台服务器上,我已经代表apache排除了配置问题的可能性
EDIT2
我试图在生产服务器上创建一个子目录,并将网站迁移到那里(www.domain.com/test/)。像这样一切都很好。。。因此,我肯定缺少一个配置参数。我在应用程序中使用相同的重写规则。试试这个: 改变 成为
$config['uri_protocol'] = "QUERY_STRING";
它在我的工作中很好
尝试深入查看apache访问日志和错误日志,以了解apache将浏览器请求路由到何处,以及CI如何获取该请求。激活登录CI也有助于:
$config['log_threshold'] = 2;
不要忘记为
system/logs
目录设置适当的权限,以便apache可以向其写入日志文件。关于您的编辑-在“同一台服务器”(通过逻辑服务器)上并不一定意味着apache对这两个部署使用相同的配置。是的,这是一个好问题,我将询问服务器管理员。
$config['log_threshold'] = 2;