我正在尝试在Ubuntu 14.04(Apache 2.4.7)中启用htaccess文件。
我知道这个问题可能有很多重复项,但是它们都没有帮助我。

.htaccess

ErrorDocument 404 /404.html


000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

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


还需要什么?

评论

AllowOverride All指令允许.htaccess文件中的所有选项。 000-default.conf假定服务器上只有一个站点。 .htaccess文件不适合您吗?此服务器上托管了多个站点吗?

/ var / www中有很多文件夹,但是没有创建虚拟主机。 / etc / apache2 / sites-available /文件夹包含两个文件000-default.conf和default-ssl.conf。 htaccess文件位于/ var / www /

也许是'DocumentRoot / var / www /'? (斜线)

检查并确保/ etc / apache2 / sites-enabled /包含指向000-default.conf的链接。如果更改/var/www/index.html文件,则在使用Web浏览器查看服务器时可以看到更改,对吗?

#1 楼

第一步

打开文件为

sudo vim /etc/apache2/apache2.conf


第二步

删除注释符号(#)(如果找到)在此行之前(行号约为187)

AccessFileName .htaccess

第三步

然后找到存在该行的行

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


将“ None”替换为“ All”

AllowOverride All


...瞧瞧... .htaccess可以用!

评论


更改直到我重新启动apache才生效:service apache restart

–塔希尔·亚辛(Tahir Yasin)
15年2月3日,15:59

我建议,就像@TahirYasin提到的那样,重新启动apache。 sudo服务apache2重新启动。

–www139
16 Dec 23'4:55

#2 楼

激活ModRewrite:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart


评论


现在,service命令是重启Apache的首选方法:sudo service apache2 restart。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
2014年9月12日上午8:36

#3 楼

就我而言,将
/etc/apache2/sites-enabled/000-default.conf中的AllowOverride None更改为AllowOverride All很有帮助。

所有其他.conf文件都已经具有AllowOverride All

#4 楼


在/etc/apache2/apache2.conf中,从#删除注释符号(AccessFileName .htaccess


Apache配置文件的名称不是标准的。您可以在Windows中将其重命名为default.conf,在Linux中将其重命名为default。在基于Linux的操作系统中,在终端中运行以下代码:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default




评论


它以零开头,因此按字母顺序排在首位。如果您具有default.conf文件,然后为anteater.com创建一个站点,则anteater将成为默认主机,因为它将首先加载。保留000以防止出现此类问题。 conf文件的名称与.htaccess是否有效无关。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
2014年4月24日在1:50

'AccessFileName .htaccess'已经取消注释。以上答案对我有帮助。谢谢。

–David ZIP
2014年4月25日下午5:16