Ubuntu+Apache服务器开启rewrite功能

in #cn7 years ago

先发发牢骚

在写文章的时候却发现自己最想做的事就是发发牢骚,现在文章的抄袭太严重了,具体什么抄袭后面会说。

问题的提出

我只是想在服务器上装一个WordPress,使用固定链接,然后一切就不好了。

自己的服务器是Ubuntu 16.04.3 LTS,安装了LAMP。本来开启rewrite功能想必也是非常简单的。但在这么个简单的问题上自己花了一个多小时!!!

解决方法

1. 开启rewrite功能

sudo a2enmod rewrite

非常简单。

之前好像记得有个参数来告诉Apache服务器要不要使用.htaccess文件的,也很快找到了这个参数:AllowOverride

AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。

需要在Apache的配置文件中修改,此文件一般在/etc/apache2/apache2.conf,里面会有一个/var/www的例子:

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

参照他的例子,我增加了(我的网站放在/var/www/html/中):

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

然后重启Apache就可以了:

sudo service apache2 restart

同质化或者抄袭问题

我在解决这个问题的时候,找了不少的文章,如:ubuntu 16.04 apache 开启Rewrite功能,里面都说了一个问题,那就是应该修改的Apache配置文件为:

/etc/apache2/sites-enabled/000-default/etc/apache2/sites-enabled/000-default。但实际上我的服务器中并没有这个文件,有一个类似文件,000-default.conf,感觉也差不多,我就根据教程把这个文件改了,重启,Apache出错。查了一下信息说是此位置不支持AllowOverride。然后就开始大批量的查找,很多文章都用的这一种说法,所以我换着法的试了好几次,终于放弃,最后终于在这里apache - How to Set AllowOverride all找到了解决方法。

唉,一生长叹(手动表情)

Sort:  

@rileyge, 其实我就是来点赞的,别管我哈!