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



我关注的最后一个在这里 如何从 UBUNTU 中的代码点火器中删除索引.php [复制]

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

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
public function index()
{
$this->load->view('login.html');
}
}

当我通过这个 URL 访问它时:http://localhost/homerent/Login,我找不到 404。

我从上面的答案中引用链接

  1. $config['index_page'] = '';
  2. 重新启动 Apache 2 服务:sudo/etc/init.d/apache2 重新加载
  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 All的每个AllowOverride None实例

  5. 启用重写模式:sudo a2enmod rewrite
  6. 最后再次重新启动 apache2 服务。

毕竟,我再次访问我的网址http://localhost/homerent/Login我仍然找不到 404。

我不知道这有什么问题。

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

为此在终端中

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 以使更改生效

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

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

相关内容

  • 没有找到相关文章

最新更新