【问题标题】:How to fix permalinks not working with Vagrant and Wordpress?如何修复无法与 Vagrant 和 Wordpress 一起使用的永久链接?
【发布时间】:2015-11-07 10:21:21
【问题描述】:

我正在使用 Vagrant 构建一个小的 Wordpress 开发虚拟机。当我选择永久链接(帖子名)时,不会加载文章中的页面。但是,当我选择标准链接(即页面 ​​ID)时,一切正常。 我已经使用服务 PuPHPet 来构建 VM。

我的设置可以找到here

我正在使用 Wordpress 3.9.1 和 Apache2 我已启用 mod_rewrite 正在执行:

a2enmod rewrite

我的 .htaccess 来自 Wordpress 的文件如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /svisa/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /svisa/index.php [L]
</IfModule>

# END WordPress

它具有以下权限和所有权:

-rw-rw-rw- 1 vagrant www-data   248 May 30 14:52 .htaccess

我的网站 (/var/www/svisa/) 的虚拟主机文件可以在 here 找到。

在我的主机上,我通过地址浏览到该站点:http://wpdev-vm/svisa/ 其中wpdev-vm 是虚拟机的名称。

有人知道我缺少什么才能使永久链接正常工作吗?

【问题讨论】:

    标签: php wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    我自己解决了这个问题。

    在默认的apache配置中,在/etc/apache2/sites-enabled下,我的叫15-default.conf

    这是在文档根目录下声明的:

       <Directory "/var/www">
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         Allow from all
       </Directory>
    

    我不得不将AllowOverride None 更改为AllowOverride All。因此,您将获得以下信息:

       <Directory "/var/www">
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         Allow from all
       </Directory>
    

    在那之后,永久链接开始工作。

    【讨论】:

      【解决方案2】:

      上面的(正确)答案说您需要在 /etc/apache2/sites-enabled 目录中找到的 xxx-default.conf 文件中将 AllowOverride None 更改为 AllowOverride All

      但是,在我的 vagrant box (precise64) 中,在 default.conf 文件中没有出现 allowOverride 或 &lt;Directory /var/www/&gt;... 代码。

      我最终不得不在 VirtualHost 标记之间添加所有内容,如下所示:

      <VirtualHost *:80>
          # Other stuff
          <Directory /var/www/>
             Options Indexes FollowSymLinks MultiViews
             AllowOverride All
             Order allow,deny
             allow from all
          </Directory>
      </VirtualHost>
      

      然后必须重新启动 apache,如下所示,它才能工作。

      sudo service apache2 restart

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-18
        • 2015-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多