无法从Codeigniter中为Ubuntu删除index.php

时间:2018-05-06 11:08:00

标签: php apache codeigniter-3 ubuntu-17.10

我关注的最后一个是How to remove index.php from codeigniter in UBUNTU [duplicate]

我有一个看起来像这样的控制器:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {

    public function index()
    {
        $this->load->view('login.html');
    }
}

当我通过此网址访问http://localhost/homerent/Login时,我找不到404。

我通过

在指示链接上面的回答
  1. $ config ['index_page'] ='';
  2. 重启apache2服务:sudo /etc/init.d/apache2 reload
  3. 将以下代码添加到/var/www/html/my_ci_site/.htaccess

    RewriteEngine on
    RewriteBase /
    RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
    RewriteRule ^(.*)$ index.php/$1 [L]
    
  4. 将/etc/apache2/apache2.conf中的AllowOverride None的每个实例替换为AllowOverride All

  5. 启用重写模式:sudo a2enmod rewrite
  6. 最后再次重启apache2服务。
  7. 毕竟,我再次访问我的网址http://localhost/homerent/Login我仍然找不到404。

    我不知道这有什么问题。

1 个答案:

答案 0 :(得分:1)

在Ubuntu中,您必须要做虚拟主机才能工作。 为此,首先在/etc/apache2/sites-available中创建yourproject.conf文件(也许您可能需要使用sudo命令的root权限)

为此在终端

 cd /etc/apache2/sites-available

然后

sudo nano yourproject.conf

复制以下内容并粘贴到其中

<VirtualHost *:3434>
      ServerName  localhost

      DirectoryIndex index.php
      DocumentRoot /var/www/html/yourprojectfolder

      <Directory "/var/www/html/yourprojectfolder">
      Options All
      AllowOverride All
      Allow from all
      </Directory>

</VirtualHost>

注意:您可以在此处使用其他端口

然后运行

sudo nano /etc/apache2/ports.conf

在此文件中添加一行(不要编辑现有端口)

Listen 3434

然后运行

sudo a2ensite yourproject.conf sudo a2enmod rewrite

config.php

$config['base_url'] = 'http://localhost:3434';
$config['uri_protocol']    = 'REQUEST_URI';
$config['index_page'] = '';

yourproject文件夹中使用以下内容创建.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]

然后重新启动apache以使更改生效

现在,您可以通过网址http://localhost:3434(这将加载defaulf控制器)访问您的网站,而无需在网址中添加项目文件夹

例如http://localhost/homerent/Login是使用now和 设置虚拟主机后 您可以使用http://localhost:3434/Login