Последний, за которым я следую, здесь Как удалить 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.
Я следую из ответа выше в референтной ссылке по
Добавьте ниже код в /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]
Замените каждый экземпляр AllowOverride None на AllowOverride All в /etc/apache2/apache2.conf
sudo a2enmod rewriteВ конце концов, я снова обращаюсь к своему URL-адресу http://localhost/homerent/Login, я все еще получаю 404 not found.
Я понятия не имею, что с этим не так.
@prasannaputtaswamy, конечно, я использовал эту команду sudo a2enmod rewrite, но она все еще не работала.






В 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
убедитесь, что перезапись мода включена, если она не включена, и перезапустите apache.