.htaccess代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
也改变配置文件:
$config['index_page'] = ' ';
$config['uri_protocol'] = "REQUEST_URI";
mod_rewrite也已启用。 虽然这段代码不起作用。
答案 0 :(得分:0)
当您要求Apache将URI发送到REQUEST_URI
时,您无法使用QUERY_STRING
协议。
因此,请更改您的.htaccess
或您的配置以使其匹配。我的建议是更改.htaccess
:
RewriteRule ^ index.php [L]
答案 1 :(得分:0)
您是否尝试过AUTO
代替REQUEST_URI
。即使我遇到了类似的问题,但是当我将其更改为AUTO
并在我的情况下对.htaccess进行微小更改时,我得到了解决。
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
的.htaccess -
RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
OR
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
如果对您的案件不起作用,抱歉。
答案 2 :(得分:0)
我已运行CI 3应用程序并正常使用此.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
答案 3 :(得分:0)
更改此
在&#39; config.php`
中$config['base_url'] = '';
$config['index_page'] = ''
$config['uri_protocol'] = 'AUTO';
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
并使用base_url()
功能访问网址。
ex <form action="<?php echo base_url()?>Controller_name/Method_name"
注意: 要使用
上启用它base_url()
,您必须在autoload.php
$autoload['helper'] = array('url');