启用mod_rewrite模块后如何配置htaccess文件?

启用mod_rewrite模块后如何配置htaccess文件?

我已经安装apache2然后我启用该mod_rewrite模块如下:

sudo a2enmod rewrite

启用后,我对这些行感到困惑,我不明白该如何处理它们,据我所知,我要用这些行来做的事情是“找到以下部分,并将 AllowOverride 行从 None 更改为 All。”

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

我的问题是,我找不到包含上述行的文件来编辑。我已经查看过了/etc/apache2/sites-available/。在那个目录中,我只找到了两个文件:

000-default.conf 
default-ssl.conf 

在这两个文件中我都找不到需要编辑的上述行。

我编辑了此目录中的文件 /etc/apache2/apache2.conf,但它仍然不起作用。

我也查看了这个/etc/apache/sites-enabled/default.conf目录,但是找不到这些行dafault.conf

<Directory /var/www/html>
    AllowOverride All
</Directory>

我正在/var/www/html目录中工作,为什么它会给我 403 禁止错误。

仍然.htaccess无法运行。它给出了 403 禁止错误。

这是文件夹权限的屏幕截图:

在此处输入图片描述

这是 403 禁止错误的屏幕截图: 在此处输入图片描述

答案1

编辑/etc/apache2/apache2.conf而不是/etc/apache2/sites-available/并按指示编辑。

这是我的:

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

答案2

首先,在 Ubuntu 14.04(和 Apache 2.4)中,默认值DocumentRoot从 更改为/var/www/var/www/html其次,配置已大大简化,因此那些通常默认存在的条目不再出现在新的默认站点配置中。

编辑/etc/apache/sites-enabled/default.conf,并添加以下行:

<Directory /var/www/html>
    AllowOverride All
</Directory>

您出现 403 Forbidden 错误可能是因为您正在/var/www应该工作的地方工作/var/www/html

最后,你不应该启用All,而是选择你需要的选项并启用只有那些

答案3

Ubuntu 14.04(和 Apache 2.4)默认 DocumentRoot 从 /var/www 更改为 /var/www/html。

sudo nano /etc/apache2/sites-enabled/000-default.conf

在最后添加这些行

<Directory /var/www/html> AllowOverride All </Directory>

当然 >

sudo service apache2 restart

答案4

Ubuntu 14.04(和 Apache 2.4)默认值DocumentRoot从 更改/var/www/var/www/html

sudo nano /etc/apache2/sites-enabled/000-default.conf

在最后添加这些行

<Directory /var/www/html>
    AllowOverride All
 </Directory>

当然,还要重新启动 apache2 服务

sudo service apache2 restart

相关内容