Es la primera vez que subo el proyecto codeigniter a producción y recibo el error 404 del servidor Apache.
error: No encontrado La URL solicitada /index.php no se encontró en este servidor. Apache/2.4.18 (Ubuntu) Servidor en roy.my-domain.com Puerto 80
He leído todos los artículos durante 2 días y no encontré una solución....
Así que aquí están mis configuraciones:
Se verificó el mod de reescritura en Apache: obtuve "Reescritura del módulo ya habilitada" Mi proyecto está en /var/www/roy/ , por lo que la URL es roy.my-domain.com/roy
Apache2.conf
<Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> AccessFileName .htaccess.htaccess
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /roy/ RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|asset|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>config.php
$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/roy/'; $config['index_page'] = '';autoload.php (estoy usando Twig)
$autoload['libraries'] = array('database','session','twig');La estructura de los controladores
name Login.php - class Login extends CI_ControllerCree una carpeta de site dentro de su html . Luego, coloque su sitio roy allí. Entonces, lo haría de esta manera:
1 - apache2/sitios habilitados/roy.mi-dominio.com.conf
<VirtualHost roy.my-domain.com:80> DocumentRoot /var/www/html/site ServerName roy.my-domain.com <Directory /var/www/html/site> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>2 - .htaccess
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|robots\.txt) RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> 3 - Si no es desarrollo, nunca es una buena práctica usar el $_SERVER['HTTP_HOST'] . Se puede cambiar desde el lado del cliente. Solo usa la URL correcta.
Después de que hayas hecho todo eso, reinicia Apache. En Ubuntu es: $ sudo service apache2 restart
Supongo que su archivo .htaccess está en el subdirectorio /roy .
Dado que está utilizando la información de la ruta (es decir, /index.php/<path-info> en la URL para enrutar la solicitud, es posible que AcceptPathInfo esté deshabilitado en el servidor. Si está deshabilitado, dicha solicitud resultaría en un 404.
Entonces, intente habilitar esto en la parte superior de su archivo .htaccess :
AcceptPathInfo On