Не удается удалить index.php из Codeigniter для Ubuntu

Последний, за которым я следую, здесь Как удалить index.php из codeigniter в UBUNTU [дубликат]

У меня есть один контроллер, который выглядит так:

<?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 not found.

Я следую из ответа выше в референтной ссылке по

  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. Замените каждый экземпляр AllowOverride None на AllowOverride All в /etc/apache2/apache2.conf

  5. Включить режим перезаписи: sudo a2enmod rewrite
  6. Наконец, снова перезапустите службу apache2.

В конце концов, я снова обращаюсь к своему URL-адресу http://localhost/homerent/Login, я все еще получаю 404 not found.

Я понятия не имею, что с этим не так.

убедитесь, что перезапись мода включена, если она не включена, и перезапустите apache.

prasanna puttaswamy 06.05.2018 15:28

@prasannaputtaswamy, конечно, я использовал эту команду sudo a2enmod rewrite, но она все еще не работала.

Houy Narun 06.05.2018 16:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
801
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В 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'] = '';

Создайте .htaccess внутри папки yourproject с содержимым ниже

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

Затем перезапустите apache, чтобы изменения вступили в силу.

Теперь вы можете получить доступ к своему сайту через URL-адрес http://localhost:3434 (это загрузит контроллер defaulf), и вам не нужно добавлять папку проекта в URL-адрес

например http://localhost/homerent/Login - это URL-адрес, который используется сейчас, а После настройки виртуального хоста Можно использовать http://localhost:3434/Login

Другие вопросы по теме