.htaccess <ifmodule>导致内部错误500的指令

时间:2016-11-21 01:31:03

标签: apache .htaccess mod-rewrite

我是laravel的新手。当我去mydomain.com时,我收到内部错误500。

我的错误日志说:

[Sun Nov 20 22:04:48.310309 2016] [core:alert] [pid 364784:tid 140380089542400] [client 141.101.105.69:27886] /public_html/public/.htaccess: <IfModule> directive requires additional arguments

我发现这个话题听起来像我的问题; Laravel空白屏幕

但我在共享主机上,没有SSH访问权限。如何在共享主机上执行此修复程序?

根据评论进行修改:我的/public_html/public/.htaccess文件是:

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

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

1 个答案:

答案 0 :(得分:1)

看起来你的.htaccess中有一个空白的IfModule指令。您需要更新它以说明它正在查询存在的模块。看到: http://httpd.apache.org/docs/2.4/mod/core.html#ifmodule

或发布.htaccess寻求帮助。

例如,要在.htaccess中定义一个仅在服务器上加载php模块时应用的块,您可以使用:

<IfModule mod_php5.c>

或者,如果它是结束指令,那么您缺少正斜杠,需要将其更改为:

</IfModule>

参考:error 500 for .htaccess error 参考:https://serverfault.com/questions/257986/error-500-for-htaccess-error