【问题标题】:Rewrite rules for multilingual website using Wordpress使用 Wordpress 重写多语言网站的规则
【发布时间】:2015-04-18 15:28:54
【问题描述】:

enter link description here我对 .htaccess 知之甚少,我需要一个建议。

我正在使用 Wordpress 开发一个多语言网站,我将使用一些名为 Localise.js 的 JS 魔法来翻译内容

使用这个网络应用程序,我可以通过将参数?ljs=XX 添加到我的网址来轻松翻译任何网址。

例如,如果我想将此网址 http://www.example.com/company 翻译成西班牙语,我将使用网址 http://www.example.com/company?ljs=es

出于 SEO 的目的,我想将 URL 重写为更有意义的内容,例如: http://www.example.com/es/company

所以页面像:

http://www.example.com/es/company

http://www.example.com/fr/company

http://www.example.com/jp/company

只是指向http://www.example.com/company

如何将这些规则与 Wordpress 基本重写规则合并?

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

我尝试调整 that solution 但没有任何运气。

提前感谢您的时间和耐心。

和平。

【问题讨论】:

  • 您是否碰巧加载并启用了 mod_proxy?
  • 是的,我确实启用了 mod_proxy。

标签: .htaccess mod-rewrite seo


【解决方案1】:

不确定这是否适合您,可能有一种特定于 wordpress 的方法来使用其内部重写引擎来处理此问题,但是启用 mod_proxy 后,您可以尝试在内部将请求代理到 wordpress。这样做的原因是因为这会创建一个 new 请求 wordpress 能够解释。否则,当你在内部重写时,像$_SERVER['REQUEST_URI'] 这样的服务器变量会出错。

比如:

RewriteRule ^(en|es|fr|jp)/(.*)$ /$2?ijs=$1 [L,QSA,P]

您需要填写(en|es|fr|jp) 列表以包含您支持的所有语言,或者将该正则表达式更改为([a-z]{2})。然后,您将在 RewriteBase / 正下方添加该规则。

【讨论】:

  • 嗨乔恩。这非常有效,但我认为我需要使用 Wordpress 重写规则系统来实现我的目标。使用您的解决方案,一切正常,直到我使用内部链接更改页面,Wordpress 刚刚删除了语言代码(它不知道规则)。
猜你喜欢
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
相关资源
最近更新 更多