【问题标题】:solution for wrong links via mod rewrite?通过 mod rewrite 解决错误链接?
【发布时间】:2014-05-18 18:52:26
【问题描述】:

您好,感谢您阅读我的问题。 这是我的第一个所以请温柔,因为我不是程序员而是驳船船长,并且很好奇))

情况:

我经营一个小型网站,我们希望提供更多语言服务,该网站基于 Wordpress 多站点。 在尝试了各种翻译解决方案后,我们决定使用 transposh。

该插件使我们能够轻松地翻译内容,并且可以在 domain.com/en domain.com/fr 等处获得这些目录是虚拟的。

由于我们有不同语言的不同域名,我需要一个解决方案来在 domain2.com 上拥有 domain.com/en 的内容

我所做的是将 domain.com 的缓存目录(静态 html)设置为 domain2.com 的 webroot。一个相当简单的解决方案,它就像一个魅力。

我面临的唯一问题是菜单项链接回 domain.com 而不是 domain2.com

我试图通过 wp 核心和两个插件使网址相对,但由于尾随 /en 或 /fr 是虚拟的,因此网址相对只是链接回 domain.com

我花了两天时间在谷歌上搜索,我真的没有想法。我尝试了不同的 php 脚本进行搜索和替换、cgi 脚本、perl 脚本,但似乎没有一个可以完成这项工作。我没有 shell 访问权限。

我想知道它是否可以通过 mod rewrite 来做类似的事情,如果可以,那么如何?

简单地说:

带有错误链接的静态 html 站点 我可以通过 htaccess 或其他容易(相对)理解和维护的方法更改链接吗?

当然会不时重建缓存

【问题讨论】:

  • 欢迎来到 SO!请编辑您的问题以更好地突出问题,现在它有点像一堵文字墙。

标签: wordpress .htaccess mod-rewrite


【解决方案1】:

这是通过另一种方法解决的:

我没有使用缓存,而是使用 wget 创建了一个 cronjob:

/usr/bin/wget -np -P /destination-eg-yourwebroot/ --html-extension -nH -p -k -r http://domain.com

这会在新域的 webroot 中创建您网站的 html 副本 出于某种原因,wget 并不总是更新副本中的链接,因此它们将指向原始域

我们可以再次运行该命令,然后在它前面加上 /usr/bin/wget -nc -k

/usr/bin/wget -nc -k -np -P /destination-eg-yourwebroot/ --html-extension -nH -p -k -r http://domain.com

它将正确更新链接,包括 css url

您现在在不同的域中拥有您网站的干净副本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    相关资源
    最近更新 更多