我正在尝试将测试网站从托管域迁移到 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