6

我终于为 Laravel 安装了所有东西,但我的主页上出现错误 500!

它看起来是我的 .htaccess 文件。如果我删除它,页面就可以工作。如果我把它放回去,另一个错误 500。

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

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

如果我将倒数第二行更改为“RewriteRule ^index.php [L]”(index.php 之前没有空格),那么错误 500 就会消失,但重写规则将不起作用。

我的主机是 1and1.com。

有谁能够帮我?

4

6 回答 6

20

改变了这一行:

    RewriteRule ^ index.php [L]

对此:

    RewriteRule ^ /index.php [L]

现在它起作用了。我不仅没有收到 500 错误,而且 URL 似乎按预期工作。

于 2013-06-21T13:15:14.110 回答
3

在我看来,500 内部错误即将到来,因为您尚未在 apache httpd.conf 文件中设置虚拟主机。

将此行放在 httpd.conf 文件中

对于窗户

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName yourlaravel.com
    DocumentRoot "C:/wamp/www/laravel/public"
    <Directory "C:/wamp/www/laravel/public">
    </Directory>
</VirtualHost>

<VirtualHost *:80>
     ServerName localhost
     DocumentRoot "C:/wamp/www"
     <Directory "C:/wamp/www">
     </Directory>
</VirtualHost>

对于 Linux

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourlaravel.com
    DocumentRoot "/var/www/laravel/public"
    <Directory "/var/www/laravel/public">
 </Directory>

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "/var/www"
   <Directory "/var/www">
   </Directory>
</VirtualHost>

并在您的本地机器上运行它

对于窗口打开 C:\Windows\System32\drivers\etc\hosts 放这一行。

 yourserverip   yourlaravel.com

对于 linux 打开 \etc\hosts 放置这一行。

 yourserverip   yourlaravel.com

您可以参考此链接了解更多信息:

http://net.tutsplus.com/tutorials/php/building-web-applications-from-scratch-with-laravel/

我希望这能有所帮助。

于 2013-06-21T08:05:56.803 回答
2

它适用于大多数默认项目不起作用的项目

DirectoryIndex index.php

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

    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/index.php [L]

</IfModule>
于 2019-08-21T11:21:25.063 回答
0

在您的根文件夹中创建 .htaccess 文件,然后在文件中分页代码如下。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
于 2022-02-25T12:07:49.490 回答
0

我有一个类似的问题,错误突然发生在一夜之间。

我已经在谷歌和 Stackoverflow 上进行了搜索,但我找不到任何解决方案来解决这个问题,而且我一直收到 500 内部服务器错误。

我在共享主机上,甚至重命名 .htaccess 文件也没有用。

在 .htaccess 的底部我放了

php_flag opcache.enable 0

就在结局之前</IfModule>。这为我解决了这个问题。

于 2016-01-18T14:21:18.090 回答
-1

我也遇到了这个问题,并通过在 .htaccess 文件中注释选项行来解决它。

使用 Apache 2.4.x

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

它可能与站点配置冲突。因为它不能与不同的运算符有多个条件。

我还找不到链接。但我以前在某个地方读过它。

编辑:找到链接

笔记

将带有 + 或 - 的选项与那些没有的混合是无效的语法,并且将在服务器启动期间被带有中止的语法检查拒绝。

只需确保您的 .htaccess 和 apache 配置不会相互冲突。

于 2016-08-06T12:55:30.887 回答