Laravel默认.htaccess文件无效

时间:2013-06-21 06:26:36

标签: .htaccess laravel

我终于为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。

有人能帮助我吗?

5 个答案:

答案 0 :(得分:15)

更改了这一行:

    RewriteRule ^ index.php [L]

到此:

    RewriteRule ^ /index.php [L]

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

答案 1 :(得分:3)

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

将此行放在httpd.conf文件中

对于Windows

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/

我希望这可以提供一些帮助。

答案 2 :(得分:1)

对我来说,它可以在大多数项目中工作,而默认情况下,这将不起作用

sudo a2dismod php5.6 (Your php.ini file path version)
sudo a2enmod php7.3
sudo systemctl restart apache2

答案 3 :(得分:0)

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

我搜索了所有谷歌和Stackoverflow,但我找不到任何解决方案来解决这个问题,我一直收到500内部服务器错误。

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

在.htaccess的背后我放了

php_flag opcache.enable 0

在结束</IfModule>之前。这解决了我的问题。

答案 4 :(得分:-1)

我也遇到过这个问题,并通过评论.htaccess文件中的选项行解决了这个问题。

使用apache 2.4.x

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

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

我找不到链接了。 但我以前在某处读过它。

编辑:找到link

  

请注意

     

将选项与+或 - 混合使用无效语法,并且在服务器启动期间通过语法检查中止将被拒绝。

确保您的.htaccess和apache配置互不冲突。