The requested URL /ProjectName/users was not found on this server. Laravel

Steps for Apache Web Server and Laravel in Linux Environment.

  1. Open httpd.conf

    sudo vim /etc/httpd/conf/httpd.conf
    # for debian users: /etc/apache2/apache2.conf
    
  2. Make sure the DocumentRoot is pointing to the laravel project's public directory

  3. Add the Directory element for that path and Allowoverride All... as follows

    DocumentRoot "/var/www/html/laravel/public/"
    
    <Directory "/var/www/html/laravel/public">
    Allowoverride All
    </Directory>
    
  4. Open .htaccess from ../laravel/public/ and make sure it has the following

    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
    </IfModule>
    
    RewriteEngine On
    
    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    
    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    </IfModule>
    
  5. Restart httpd services

    sudo service httpd restart
    
  6. Now http://DomainServer/users will work in your browser.


Find httpd.conf and change the <Directory> element from

<Directory "/var/www/html/">
Allowoverride None
</Directory>

to

<Directory "/var/www/html/">
Allowoverride All
</Directory>

Then it works after restart the apache without change the DocumentRoot.


First find the htaccess file in your Laravel project

next add the following coding in htaccess file

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

save the htaccess file

and restart the apache server using following code

sudo service apache2 restart

remember htaccess file and index.php file must be available in same folder in your project