Ubuntu 12.04 AllowOverride All抛出内部服务器错误

时间:2014-09-06 21:01:42

标签: apache .htaccess ubuntu

我刚创建了我的服务器,我需要使用.htaccess文件,其中一个工作,另一个没有...显然.htaccess工作你需要启用AllowOverride,所以我做了以下: /etc/apache2/sites-available/default改变了这个:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

对此:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

当我重新启动apache时,我的整个网站现在抛出错误500 Internal Server Error

我的.htaccess文件包含:

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

任何人都知道为什么?

1 个答案:

答案 0 :(得分:21)

你的apache配置对我来说似乎没问题。

您获得500 Internal Server Error,这表示您的htaccess现已执行 如果您未启用 mod_rewrite ,则会出现此类错误。

启用 mod_rewrite 后,应按预期工作 另外,不要忘记添加RewriteBase(这将防止将来出现虚拟目录问题)

RewriteEngine on
RewriteBase /

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