Ubuntu+Apache服务器开启rewrite功能
先发发牢骚
在写文章的时候却发现自己最想做的事就是发发牢骚,现在文章的抄袭太严重了,具体什么抄袭后面会说。
问题的提出
我只是想在服务器上装一个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找到了解决方法。
唉,一生长叹(手动表情)
@rileyge, 其实我就是来点赞的,别管我哈!