【问题标题】:Multiple different slugs for same Wordpress post同一个 Wordpress 帖子的多个不同的 slug
【发布时间】:2013-10-10 16:14:12
【问题描述】:

我到处寻找,但找不到我的问题或解决方案。

我很确定这只是与我对 .htaccess 文件的唯一基本知识有关,所以如果这只是一个基本的甚至是愚蠢的简单问题,我很抱歉。

我想要的:一个多语言的 Wordpress 网站。我知道有一些插件可以解决这个问题,但问题是它们要么与最新版本的 Wordpress (qTranslate) 不兼容,要么是付费的(我们不想要)。我不怕自己编码,我是主题开发人员,所以主题代码的问题都不是问题。

然而,当涉及到蛞蝓时,我被困住了。我正在考虑构建一种插件,让我可以为某种语言“添加”一个 slug。当我保存那个 slug 时,我会编辑 .htaccess 文件来重写新的 slug。

例如:“a propos de nous”将被重写为“about-us?lang=fr”,这样我就可以解析模板中的 lang 属性并查看我需要提取法语内容。

RewriteRule ^(a-propos-de-nous)$ about-us?lang=fr

现在,这行不通。如前所述,我猜这是我的RewriteRule 代码的问题。我只是想不通这需要如何正确完成。

为了记录,这是我.htaccess的内容;

<IfModule mod_rewrite.c>

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

# BEGIN custom slugs
RewriteRule ^(a-propos-de-nous)$ about-us?lang=fr
# END custom slugs

</IfModule>

编辑:显然您可以在 Wordpress 代码中添加新规则。看到这个问题:URL rewriting via Wordpress Rewrite or .htaccessEdit8 也解决了我的问题。

【问题讨论】:

  • 您能否快速尝试将 Rewrite Rule 放在 ./index.php 之上和 RewriteBase 规则之后?我认为它可能是自上而下的 =)
  • 不幸的是,这不起作用,而且它似乎也破坏了 CSS - 看起来当我这样做时,网站在不使用我的样式表的情况下呈现......
  • 好吧,这就是我通常会放置任何自定义 htaccess 重写的地方,您的下一个选择是使用 Wordpress'es 查询变量(在 Wordpress 内部自定义重写)请参阅此 SO 问题/答案:@ 987654322@
  • @MackieeE 谢谢,这也没有搞砸 Wordpress 自己的重写规则!
  • 没问题! Wp 的内部重写规则起初很难学习,但一旦你知道就真的很棒;-)

标签: php wordpress apache .htaccess mod-rewrite


【解决方案1】:

按照要求,这是我的问题的解决方案:

显然您可以在 Wordpress 代码中添加新规则。看到这个问题:URL rewriting via Wordpress Rewrite or .htaccess [SOLVED]Edit8 也解决了我的问题。

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2015-08-12
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多