我已经研究了一段时间了,并且发誓我的解决方案应该按照以下方式工作(这里有数百个其他人,所以原谅我的重复):
我需要从重定向中删除查询字符串。旧的WordPress?p = ###到一个新的域名/网址。
Old Url: blog.domain.com/blog/?p=123
New Url: www.domain.com/yada/woohoo/
有了这个:
RewriteCond %{QUERY_STRING} ^p=123$
RewriteRule ^/blog/$ http://www.domain.com/yada/woohoo/? [L,R=301]
我得到:http://www.domain.com/yada/woohoo/?p=123
我想:http://www.domain.com/yada/woohoo/
blog.domain.com将在DNS级别重定向。
我错过了什么? “?”在重写行的末尾应删除查询字符串?
答案 0 :(得分:1)
我刚试过你的代码,我唯一改变的就是第一个/在博客中,我让它完美运行,没有查询字符串
如果您正在运行Apache> 2.4然后你可以使用标志QSD,但否则,用?最后它的工作原理。那里还有其他规则吗?
RewriteCond %{QUERY_STRING} ^p=123$
RewriteRule ^blog/$ http://www.domain.com/yada/woohoo/? [L,R=301]