Apache不允许.htaccess

我升级了我的Ubuntu到14.04 LTS和Apache到2.4。 当服务器第一次启动时,我得到403错误访问页面。 这是当我知道我需要改变Require all granted 。 我以为我有一切工作,直到我意识到.htaccess没有被加载到任何地方。 我认为还需要改变,但Apache文档说,从我能find的没有问题。 以下是我Directory规则。

 VirtualDocumentRoot /var/hosts/%-2.0.%-1.0/%-3+/public_html <DirectoryMatch "^/var/hosts/[^/]+/[^/]+/public_html"> Options FollowSymLinks AllowOverride All Require all granted </DirectoryMatch> 

我的第一个想法是正则expression式是错误的,没有规则被加载。 所以我评论了Require all granted并看到它停止再次加载网站。 所以我知道这是加载它们。 我不得不做下面的工作。

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

我可以离开它吗? 任何想法,为什么它不工作?

尝试这个:

1.configurationApache mod_rewrite

a2enmod重写

2.将以下代码添加到/ etc / apache2 / sites-available / default

AllowOverride全部

重新启动apache

/etc/init.d/apache2重新启动

我解决了我的问题。 看来2.4有与[^ /] +匹配目录的问题。 我能够使它与*工作。 它匹配一切,但一个/。 我再次遇到这个问题,试图保护开发的任何子域。 我看到,指定域而不是使用REGEX将在VirtualHost内工作。 查看目录文档后,我了解了*并给了它一个镜头。 还了解到DirectoryMatch不影响子目录,并且Directory允许REGEX。