繁体   English   中英

htaccess网址重定向,参数不起作用

[英]htaccess url redirects with parameters not working

我搜索了以前有关带参数的URL重定向的问题,但似乎没有一个问题与我的特定问题有关。 我不是程序员,所以我真的不知道如何根据自己的情况调整其他建议。 尝试使用特定的HTACCESS字符串(并适应其他URL)确实会对我有所帮助。

我对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进行了调整以获得最佳SEO贡献,因此无法预测URL模式(尽管参数模式是可预测的)。

我希望我需要编写很多这样的代码,每个代码都是唯一的,因此,如果您能够提供一个示例,能否请您为两次重定向提供它,以使其适用于以下实际示例?

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]

我尝试了很多其他组合,但似乎都不起作用。

在此先感谢您提供的任何帮助。

托尼

如果您不介意包含其他查询字符串参数,那么[QSA] (附加查询字符串)是迄今为止最简单的选择。

如果这是永久更改,请使用[R=301]使其成为301重定向。

这应该适合您的目的

RewriteEngine on # if not already enabled
RewriteRule ^thailand/bangkok/don-mueang-airport/?$ /thailand/don-mueang-airport-bangkok/ [QSA,R=301]
RewriteRule ^/blog/map-attractions-bangkok-skytrain/?$ /blog/bangkok-skytrain-bts-mrt-lines/ [QSA,R=301]
# ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM