【发布时间】:2014-11-25 18:59:54
【问题描述】:
我搜索了以前有关带参数的 URL 重定向的问题,但似乎没有一个问题能说明我的特定问题。我不是程序员,所以我真的不知道如何根据我的情况调整其他建议。尝试(并适应其他 URL)的特定 HTACCESS 字符串对我很有帮助。
我对我的 WP 博客永久链接进行了 SEO 重组,我发现虽然裸 URL 重定向正常,但带有参数的 URL 没有重定向,它们会出现 404 错误。我需要 URL 参数,因为我的网站是多语言的(Transposh 插件),所以“lang”参数告诉网站要将内容翻译成什么语言。
我想我可能需要创建一堆 HTACCESS 重定向,将带有语言参数的旧 URL 重定向到这些 URL 的新永久链接,并传递 lang 参数。
这方面的一个例子是:
Source URL: /this-old-postname/?lang=(*)
Destination URL /blog/this-new-postname/?lang=$
无法预测 URL 模式(尽管参数模式是可预测的),因为每个 URL 都经过调整以获得最佳 SEO 贡献。
我希望我需要写很多这些,每个都是独一无二的,所以如果您能够提供一个示例,您能否提供两个重定向,这将适用于以下实际示例?
Source: http://www.travelnasia.com/thailand/bangkok/don-mueang-airport/?lang=zh
Destination: http://www.travelnasia.com/thailand/don-mueang-airport-bangkok/?lang=zh
Source: http://www.travelnasia.com/blog/map-attractions-bangkok-skytrain/?lang=zh
Destination: http://www.travelnasia.com/blog/bangkok-skytrain-bts-mrt-lines/?lang=zh
MOD_REWRITE 已经启用,并且在 HTACCESS 中创建的标准重定向确实有效。我很确定要实现这一点,我需要使用:
RewriteCond %{QUERY_STRING} ^lang=(.*)$
我了解这可确保从源 URL 读取查询字符串。
我认为这样的重定向规则应该可以工作,但它没有:
RewriteRule ^test-redirect/$ http://test.travelnasia.com/destination/hanoi/hanoi-vietnam-destination-guide/$1 [L,QSA]
我尝试了很多其他组合,但似乎没有一个有效。
提前感谢您提供的任何帮助。
托尼
【问题讨论】:
标签: apache .htaccess mod-rewrite url-redirection url-parameters