我对nginx有一个很大的问题,它是用于重定向/永久链接的wordpress-rules。
以下是我们所拥有的:
在正常情况下,我们只需要使用以下nginx-line:
try_files $uri $uri/ /index.php?$args;
但它不适用于新插件!我的意思是我可以访问所有类别,帖子等。
现在,当使用插件时,还有另一个部分(页面),用户可以在其中比较不同的产品。问题是,这个插件使用以下链接结构: /比较/产品名称/ 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说它无法找到一篇文章。
我认为与重写规则存在冲突,但我不知道如何在尝试不同的东西后解决它。
也许有人有个好主意!
问候&请原谅我糟糕的英语!
再见
答案 0 :(得分:0)
我从未理解使用try_files
的{{1}},我总是使用?args
,你应该尝试一下
$request_uri
答案 1 :(得分:0)
谢谢你的回答!
我前一天自己找到了一个解决方案。 问题是插件,它使用自己的规则,但没有在wordpress上注册它们。我使用了一个插件,它允许我添加新规则并将它们放在第一位置上,并使它们比其他更重要。
第二个问题是一个未知的$ _GET-Var,需要在wordpress上注册。 Monkeyman Rewrite Plugin帮我找到了!
完成这两件事之后,我只需要添加 重写^ / compare /([a-z0-9 - ] +)/([0-9] +)?$ / compare-site-name?id = $ 2 break; 到我的nginx-conf!
这就是魔法......
也许我可以用某些(我认为)糟糕的书面插件来帮助这个解决方案的人!
再见