Welcome Guest, Not a member yet? Register   Sign In
What is causing 404 error in CodeIgniter?
#1

I am attempting to install the latest version of CodeIgniter in a subdirectory, which has been successful thus far. However, I now aim to eliminate "index.php" from the URL. As a result, I have created an .htaccess file in the subfolder with the following directives:

RewriteEngine On
RewriteBase /dev/

# Redirects trailing slashes to prevent SEO duplicate content issues
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]

# Disallows access to the system and application folders by users
# This enables the creation of a System.php controller, which was previously impossible
# Replace 'system' if your system folder has been renamed
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php/$1 [L]

# Checks if the user is attempting to access a valid file, such as an image or CSS document
# If not, the request is redirected to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
The name of the subdirectory is "dev", and the webroot (parent folder) is empty, containing only an index.html file. The resulting file structure is as follows:

bash
/var/www/
    index.html
    dev/
        CodeIgniter installation here
        .htaccess
Mod-rewrite is enabled, but I am receiving a 404 error when attempting to call URLs without "index.php". Can you provide any insight into why this may be happening?
Reply
#2

to remove index.php from URL you do not have to change in .htacess

you can achieve the same just by changing in
PHP Code:
/app/Config/App.php 
public string $indexPage ''

although if you still wanna do it using .htaccess and if your server supports rewriting URLs you can easily remove this file with URL rewriting.
you can go through official docs. removing-the-index-php-file
Learning Codeigniter 
Reply
#3

Hello,

I'm following the user guide tutorial.

For a start I see the php spark serve, serves my application in port 8081 and not 8080 and I don't know why, since I've done just the basic configuration yet.

Also, when trying to open the /pages or /home or /about page, I always get a 404 : Controller or its method is not found: \Config\Pages::view.

As the code is trying to find my controllers inside of folder Config and not folder Controllers.

I have the correct namespace in Routes.php : $routes->setDefaultNamespace('App\Controllers');
I didn't touch anything of that yet.

Thank you very much if you can help me !!

Kind regards,

Carlota
Reply




Theme © iAndrew 2016 - Forum software by © MyBB