1

我对 nginx 有一个大问题,它是用于重定向/永久链接的 wordpress 规则。

所以这就是我们所拥有的:

  1. 使用永久链接的博客 (/%category%/%postname%/)
  2. nginx
  3. 在开发系统上编码的自定义插件(产品比较)

一般情况下我们只需要使用如下的nginx-line:

try_files $uri $uri/ /index.php?$args;

但它不适用于新插件!我的意思是我可以访问所有类别、帖子等。

现在,当使用插件时,用户可以在另一个部分(页面)比较不同的产品。问题是,该插件使用以下链接结构:/compare/product-name/123 123 是产品 ID。

在开发系统上,我们这样做了:

rewrite ^/compare/([a-z0-9-]+)/([0-9]+)?$ /?page_id=32134&id=$2 break;

这工作得很好(在永久链接功能未激活的开发系统上)。

激活永久链接内容并添加后

rewrite ^/compare/([a-z0-9-]+)/([0-9]+)?$ /?page_id=PAGEIDOFLIVESYSTEM&id=$2 break;
location / {
try_files $uri $uri/ /index.php?$args;
}

在我的 nginx conf 中,wordpress 说它找不到文章。

我认为与重写规则存在冲突,但在尝试不同的东西后我不知道如何解决它。

也许有人有一个好主意!

问候并原谅我的英语不好!

再见

4

2 回答 2

0

我一直不明白try_files那个用途?args,我总是用$request_uri,你应该试试

try_files $uri $uri/ /index.php?$reqiest_uri;
于 2013-11-01T05:51:36.190 回答
0

谢谢你的回答!

一天前我自己找到了解决方案。问题是插件,它使用自己的规则,但没有在 wordpress 上注册它们。我使用了一个插件,它允许我添加新规则并将它们放在“位置一”/使它们比其他规则更重要。

第二个问题是未知的 $_GET-Var,需要在 wordpress 上注册。Monkeyman Rewrite Plugin 帮我找到了答案!

做完这两件事后,我只需要添加 rewrite ^/compare/([a-z0-9-]+)/([0-9]+)?$ /compare-site-name?id=$2 break; 到我的 nginx-conf !

这就是魔法...

也许我可以帮助某人解决一些(我认为)写得不好的插件!

再见

于 2013-11-02T15:40:39.367 回答