1. 苏葳的备忘录首页
  2. 软件

Ubuntu下的Apache2打开mod_rewrite及开启WordPress固定链接

apache ubuntu wordpress其实按网上教程并无问题,主要是记录一下一个错误的排除。在ubuntu下,find / -name “*rewrite*”,可找到mod_rewrite.so文件,看来此模块已经有了。在网页中打印phpinfo(),查找mod_rewrite,没有,看来apache2并没有开启mod_rewrite模块。sudo a2enmod rewrite,执行成功并提示重启。用/etc/init.d/apache2 restart重启。然后在wordpress固定链接设置中,将链接设为post_id格式。

刷新页面,点击文章链接,无效,404页面出现了。cd /etc/apache2/mods-enabled目录,ls -ltr 发现rewrite.load是日期最新的文件,证明a2enmod rewrite是生效了。那么进入/etc/apache2/sites-enabled,修改000-default文件。在其中搜索AllowOverride,找到,将None改为All,保存退出。重启apache。

再试,还是404页面。

跟.htaccess文件有关吗?进到/var/www/wordpress下,发现有.htaccess,且其中有rewrite设置,且在wp-admin页面更改固定链接设置时并未出错,证明.htaccess文件创建或修改是成功的。

问题出在哪儿呢?再次查看000-default文件,发现AllowOverride并非只有一处,且文件首有:“DocumentRoot /var/www”。那么将

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

中 <Directory /var/www/>一节下的AllowOverrid改为All。保存,重启apache,页面打开成功。看来是自己不了解000-default文件,误以为AllowOverride是全局参数而导致的问题。

wordpress页面链接固化是个很有趣的功能。若文章是中文标题,设置以标题固化链接方式 后,可以将中文标题固化入链接中,如“http:/adfadfd/文章的标题啊/”,但是如此设置链接对搜索优化有何影响还不得而知。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/455.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 匿名
    匿名 2016年1月6日 13:44

    好啊,终于解决了,谢谢博主,大爱,么么哒