Laravel get 500 internal server error

44,990

Solution 1

Your problem is with .htaccess file. In goDaddy they wont set RewriteBase so you have to give it in your .htaccess file. The complete code would like this. This worked with my laravel portfolio site

 <Limit GET POST PUT DELETE>
#For REST support
       Allow from all
 </Limit>

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

    RewriteEngine On
    RewriteBase / # <------------ This one you missed

    #Just to redirect to www.site.com when only site.com comes
     RewriteCond %{HTTP_HOST} !^www\. [NC]
     RewriteRule ^(.*)$ http://www.%{HTTP_HOST} [R=301,L]
    #end of codes

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

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

Solution 2

After a couple of hours searching, this solved the problem:

Make sure index.php within /public_html has 644 permissions (mine was 664 and that was the cause of the Internal Server Error).

Solution 3

I must comment this lines in .htaccess and it works:

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

Solution 4

Make sure you have the Vendor folder uploaded in the server it can cause 500 error.

Share:
44,990
user3483754
Author by

user3483754

Updated on July 09, 2022

Comments

  • user3483754
    user3483754 almost 2 years

    I had laravel project on share hosting, and my structure app is

    /home/username
    
    `->fontEndApps ( my laravel apps )`
    
    `->backendApps ( my laravel apps )`
    
    `->public_html`
    

    in public html I put the index.php, htaccess and admin folder, in admin folder there is index.php and htaccess

    backend is working fine but the front end when I try to access www.domain.com/segment1 or www.domain.com/segment1/segment2 I always got 500 internal server error, and this is my htaccess file for front end and back end

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options +FollowSymLinks
        </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>
    

    please help me to figure out this problem

  • Ned
    Ned over 9 years
    hey, where did you put this? In public folder, or root?
  • Sanoob
    Sanoob over 9 years
    @Ned In public folder. Apache looks into public folder.
  • Rafee
    Rafee over 6 years
    Works very with Laravel 5.5 on 1and1 hosting with php7.1