Wordpress - wpml不同的域 - 在反向代理之后

时间:2018-03-14 17:29:31

标签: wordpress apache reverse-proxy wpml

情况

我的客户有两种语言的网上商店:
  - my-website.be(荷兰语+法语)
  - my-website.nl(荷兰语)

我必须使用Wordpress为这三种语言重制/博客 我无法访问主网站和服务器,因此必须使用反向代理。

理想情况下,这将是这样的:
  - 我的网站。 be / nl-be / blog /%postname%/
  - 我的网站。 be / fr-be / blog /%postname%/
  - 我的网站。 nl / blog /%postname%/

我们在网站上使用WPML(pro)进行翻译 我必须证明这是可能的

问题

我试图通过使用MampPro for Windows在本地计算机上使用wpml + reverse代理来证明这一点。 (因为我没有真实的/可用的服务器/域来测试这个)并且无论我尝试什么都不能正常工作。

本地测试设置

  • 制作2台本地服务器用于反向代理:
    • MY-site.local的
    • MY-site.local的 NL
  • 为博客制作了1台本地服务器: my-site.test
  • 将2个代理域中的.htaccess文件设置为反向代理:

MY-site.local的

<IfModule mod_rewrite.c>
    RewriteEngine On  
    RewriteRule ^nl-be/blog/(.*)$ http://my-site.test/$1 [P]  
    RewriteRule ^fr-be/blog/(.*)$ http://my-site.test/$1 [P]  
</IfModule>

MY-site.local的 NL

<IfModule mod_rewrite.c>
    RewriteEngine On  
    RewriteRule ^blog/(.*)$ http://my-site.test/$1 [P]  
</IfModule>
  • 在WPML中设置3种语言(nl-be,fr-be,nl-nl)
  • 将Wordpress网站网址设置为默认http://my-site.test

==&GT;使用此设置,反向代理域都只显示默认主页和/或子页面。没有办法访问其他语言。

我们尝试了什么

  • 将Wordpress wp_home和wp_siteurl更改为:
    / nl-be / blog(因为nl-be被设置为wpml中的默认语言)
  • 将wpml设置为&#34;为每种语言设置不同的域&#34;,但在每个不同的域之后放置/ nl-be / hardcoded。
    (将wp_home和wp_siteurl设置为my-site.test)
  • 摆弄.htaccess中的proxypass设置(可能是错误的)
  • 更改数据库中硬编码的wpml语言域
  • 覆盖functions.php中的server_name变量,如下所示:

    $_SERVER['SERVER_NAME'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
    
  • 以上所有的组合和变体。

结果

  • 主要是错误500
  • 保存永久链接时损坏的.htaccess
  • 内部重定向很多
  • 链接看起来像my-site.testbe / nl-be / blog / nl-be / *
  • 从错误的域加载样式和脚本
  • 以上所有的组合

我想知道

  • 如果甚至可以进行此设置(本地或真正的Linux服务器上)
  • 如果错误在我的反向代理/ htaccess部分
  • 如果错误在于配置wordpress和wpml
  • 任何可以帮助我解决此问题的信息。

非常感谢, 陷入困境的开发者

0 个答案:

没有答案