.htaccess没有在我的Ubuntu 14.04发行版上工作

时间:2014-07-10 11:54:36

标签: apache .htaccess mod-rewrite

我刚刚在我的Ubuntu 14.04发行版上配置了LAMP堆栈,并希望将.htaccess设置为服务网站。

我按照教程https://www.digitalocean.com/community/tutorials/how-to-use-the-htaccess-file为我的域配置了一个虚拟主机,但是我仍然无法在我的项目根目录中使用.htaccess文件,每当我尝试提供一个页面时,我得到{{1 }}

我的域的404 error文件如下:

.conf

我尝试将 <VirtualHost *:80> ServerAdmin alexmk92@live.co.uk ServerName alexsims.me ServerAlias www.alexsims.me DocumentRoot /var/www/alexsims.me <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/alexsims.me> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 更改为AllowOverride None,但即使在启用AllowOverride All后也会导致内部500错误。

此致 亚历克斯。

编辑:mod_rewrite内容

.htaccess

4 个答案:

答案 0 :(得分:3)

我对Ubuntu 15.10也有同样的问题。

我解决了这个问题。

首先,您需要启用重写模块:

sudo a2enmod rewrite

sudo gedit /etc/apache2/apache2.conf

并替换

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

使用:

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

最后

sudo service apache2 reload

实际上restartreload之间有什么区别!

restart= stop + start

reload = remain running + re-read configuration files.

我们更改了配置,因此我们需要重新加载配置。

它可以帮助某人,因为我浪费了4个小时:))

答案 1 :(得分:2)

尝试

Require all granted

取代

Order allow,deny
allow from all

有关详细信息,请参阅upgrade documentation

  

在2.2中,访问控制基于客户端主机名,IP地址等   客户请求的特征是使用指令完成的   订单,允许,拒绝和满足。

     

在2.4中,这种访问控制的方式与其他方式相同   授权检查,使用新模块mod_authz_host。老人   访问控制习语应该由新的身份验证替换   机制,虽然为了兼容旧配置,   提供了新模块mod_access_compat。

答案 2 :(得分:1)

AllowOverride None

那是你的问题,就在那里。您获得的500错误可能意味着您的.htaccess文件格式错误 - 开始

请参阅http://httpd.apache.org/docs/current/mod/core.html#allowoverride

答案 3 :(得分:1)

您应该检查您在.htaccess中使用的指令是否已启用。

例如,如果您使用RewriteEngine,则应启用apache模块重写:

cat /etc/apache2/mods-available/rewrite.load 
a2enmod rewrite
service apache2 restart

对于ExpiresActive指令,您应该启用apache module expires:

cat /etc/apache2/mods-available/expires.load 
a2enmod expires
service apache2 restart