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

She*_*ard 10 apache ubuntu .htaccess

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

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

对此:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

当我重新启动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
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么?

Jus*_*man 21

你的apache配置对我来说似乎很好.

你知道500 Internal Server Errorhtaccess现在被执行了.
如果您没有启用mod_rewrite,则会出现此类错误.

一旦mod_rewrite启用,应该按预期工作.
另外,不要忘记添加一个RewriteBase(这将防止未来的虚拟目录问题)

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)