修改 apache2.conf AllowOveride All 给出 500 内部服务器错误

修改 apache2.conf AllowOveride All 给出 500 内部服务器错误

我正在尝试将测试网站从托管域迁移到 OCI ubuntu 22 实例。该实例运行正常,我已经安装了 apache2 和 php。我还将文件复制到了该实例。但是,我的 .htaccess 文件没有被考虑在内(有一次,我在 .htaccess 文件中配置将文件指向 .php——以便在尝试访问 Web 服务器上的文件时摆脱 .php 扩展名,但这在 oci 实例上不起作用)。

我已读到我应该将/etc/apache2/apache2.conf文件修改为:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

但是,我这样做了,在保存文件并重新启动 apache2 后,现在无论我尝试访问网站中的哪个页面,都会出现“500 内部服务器错误”。

> Internal Server Error The server encountered an internal error or
> misconfiguration and was unable to complete your request.
> 
> Please contact the server administrator at webmaster@localhost to
> inform them of the time this error occurred, and the actions you
> performed just before this error.
> 
> More information about this error may be available in the server error
> log.
> 
> Apache/2.4.52 (Ubuntu) Server at

这是我所做的唯一修改。如果我返回默认配置,使用 AllowOverride None,则不会出现错误,但我的 /var/www/html/test01(我的测试网站名称)中的 .htaccess 文件不会被考虑在内。

法律:

我检查了日志,似乎它确实看到了 .htaccess 文件,但是我在日志中收到以下内容:

Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
DirectoryIndex home.php
php_flag display_startup_errors on
php_flag display_errors on

我也尝试删除 RewriteEngine 行,现在它给出了Invalid command 'RewriteCond'

问题是什么?

LE2:

我解决了sudo a2enmod rewrite

相关内容