将 WordPress 设置为 Magento 2 目录中的子文件夹

Setup WordPress as a sub folder in Magento 2 directory

我有 Magento 2 并想在子文件夹中设置 WordPress,因此它将通过 magento2 访问。url/blog

我知道 Fishpig,但就我的情况而言,它不起作用,因为 WordPress 站点有很多自定义 post 类型,默认情况下 FishPig 集成不支持这些类型。

现在,如果我尝试访问 magento2。url/blog 它会显示 404 错误 Magento 2 页面。

我将 WordPress 子文件夹中的 .htaccess 修改为:

# BEGIN WordPress
<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /blog/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /blog/index.php [L]

</IfModule>

# END WordPress 

但这无济于事,WordPress 的主页仍然显示 404 Magento 2 页面。我想我需要在 Magento 2 中修改 .htaccess 但不确定如何修改。

正如在 https://magento.stackexchange.com/a/53757 上的回答,您应该在 Magento 目录之外安装 WordPress。

尽管如此,在您的情况下,您必须编辑 Magento .htaccess 因为无法访问 WP,这解释了 Magento 404 错误。

RewriteRule ^/blog/(.*) /blog/ [QSA]

将 WordPress 集成到 Magento 时,.htaccess 无关紧要。此文件仅在直接访问 WordPress 时适用(即针对 WordPress 管理员请求)。

基本安装说明如下:

  • 在名为 wp 的 Magento 子目录中安装 WordPress。
  • 如果您使用 pub 目录显示 Magento,请在 pub/wp 安装 WordPress 或在 pub/wp 创建符号链接以指向实际的 wp 文件夹。
  • 检查 wp_options table 的 home 和 siteurl 值。 siteurl 值应该是 /wp URL 并且 home 选项应该是你的 /blog URL

这就是在 /blog 上集成 WordPress 所需要做的全部工作。

.htaccess 文件在这里没有影响,但是您应该在 WordPress.htaccess 中将 /blog/ 更改为 /wp/。正确的值为:

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

# END WordPress

有关完整的安装指南,请参阅 this link

对于使用 Apache 的情况。

  1. 安装 Magento
  2. 将 Wordpress 安装到子文件夹 blog
  3. 添加到 .htaccess & pud/.htaccess 下面的代码

    RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L]

  4. 在pub文件夹中创建符号link like

    ln -s /var/html/blog /var/html/pub/blog