启用.htaccess文件以重写路径(不起作用)


17

所有教程都告诉我编辑::/etc/apache2/sites-available/default但是该文件对我而言不存在。在此文件中,我将必须编辑:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#AllowOverride All
#AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews        
Order allow,deny
allow from all </Directory>

该文件应该是什么样子,我应该自己创建它?

Aslo我确实有一个000-default.conf文件,但是上面的“代码”也没有。

Answers:


59

对于apache 2.4和更高版本,您必须转到

/etc/apache2/apache2.conf

您必须编辑该文件(您应该具有root权限)。像这样更改目录文本;

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

现在重新启动apache。

service apache2 restart

希望它能工作。


您能解释一下这是什么吗?这与.htaccess有何关系?我的.htaccess文件根本没有被阅读。
chx101

1
重要的一行是AllowOverride All,这意味着可以在.htaccess文件中设置(覆盖)所有设置。见文档:httpd.apache.org/docs/2.4/mod/core.html#allowoverride
jacwah

18

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

首先启用a2enmod

sudo a2enmod rewrite 

sudo service apache2 restart

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

在末尾添加这些行

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

sudo service apache2 restart

1
此解决方案对我有用,因为我需要先启用mod_rewrite。非常感谢。
kishor10d

1
这确实适用于Apache 2.4。拯救了我的一天。即使在编辑maing apache2.conf .htaccess之后,它也不起作用,但是这样做是可行的。
Faisal Sarfraz

9

如果您不想在每次升级/更新时重复相同的配置

最好的方法是:

编辑或创建配置文件

/etc/apache2/conf-available/httpd.conf

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

启用配置文件

sudo a2enconf httpd

重新启动或重新加载Apache

sudo service apache2 restart

要么

sudo service apache2 reload

完成!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.