【发布时间】: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