Laravel获得500内部服务器错误

时间:2014-06-16 04:51:24

标签: php apache .htaccess mod-rewrite laravel

我在共享托管上有laravel项目,我的结构应用程序是

/home/username

`->fontEndApps ( my laravel apps )`

`->backendApps ( my laravel apps )`

`->public_html`
在公共html中我把index.php,htaccess和admin文件夹放在admin文件夹中,有index.php和htaccess

后端工作正常,但是当我尝试访问www.domain.com/segment1或www.domain.com/segment1/segment2时前端我总是得到500个内部服务器错误,这是我的前端htaccess文件和后端

<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>

请帮我弄清楚这个问题

4 个答案:

答案 0 :(得分:8)

您的问题在于 .htaccess 文件。在goDaddy中,他们不会设置RewriteBase,因此您必须在 .htaccess 文件中提供它。完整的代码是这样的。这适用于我的laravel组合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>

答案 1 :(得分:5)

经过几个小时的搜索,这解决了这个问题:

确保/ public_html中的 index.php 具有 644 权限(我的是664,这是内部服务器错误的原因)。

答案 2 :(得分:4)

我必须在.htaccess中注释这一行并且它有效:

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

答案 3 :(得分:1)

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