CodeIgniter使用.htaccess文件删除index.php

时间:2015-05-16 06:50:23

标签: php codeigniter

使用.htaccess文件删除CodeIgniter中的index.php对我不起作用。我尝试了以下代码,但是没有工作。

    <IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]
</IfModule>

我试过这个http://firstcode.info/codeigniter-removing-index-php-from-url/。但不工作。但它在我的localhost工作。我还编辑了httpd.config文件。但没有用。 请帮帮我。

5 个答案:

答案 0 :(得分:1)

第1步

打开文件夹“application/config”并打开文件“config.php“.查找并替换config.php file.

中的以下代码

找到以下代码

$config['index_page'] = "index.php"

replace with the below code

$config['index_page'] = "

第2步

在.htaccess文件中写下以下代码

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
   </IfModule>

第3步

“application/config/config.php“,然后查找并替换以下代码

找到以下代码

$config['uri_protocol'] = "AUTO"

replace with the below code

$config['uri_protocol'] = "REQUEST_URI" 

答案 1 :(得分:1)

您提到的代码是正确的。

你必须修改apache2.conf(/etc/apache2/apache2.conf ---我的服务器路径)检查你的路径。

找到这个罪魁祸首"AllowOverride None"/var/www//var/www/html

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

更新到

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

别忘了sudo service apache2 restart

答案 2 :(得分:0)

试试此代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php 
</IfModule>

在我的 config.php 文件中,我有以下设置。

$config['index_page']   = "";
$config['uri_protocol'] = "PATH_INFO";

答案 3 :(得分:0)

请尝试在config.php中更改基本URL,如果使用localhost或domainname.com

$config['base_url'] = 'http://localhost/'; // localhost

OR

$config['base_url'] = 'http://domainname.com/'; // domainname.com

答案 4 :(得分:0)

添加.htacess

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$

$config['index_page']中的config.php删除“ index.php”(保留空白值)

并修复项目文件夹的权限。