.htaccess 301重定向问题-URL是否有问题?及=
我是通过.htacces进行301重定向的新手 我可以得到简单的重定向.htaccess 301重定向问题-URL是否有问题?及=,.htaccess,redirect,http-status-code-301,.htaccess,Redirect,Http Status Code 301,我是通过.htacces进行301重定向的新手 我可以得到简单的重定向 redirect 301 /test.html http://www.domain.com/test2.html 工作,但我有一些像这样的网址 redirect 301 /test.asp?Group=100 http://www.domain.com/test3.html 由于某些原因,这些都不起作用 谢谢。重定向指令(据我所知)只在路径上匹配,而不是查询字符串。相反,请使用重写规则。QSA指示重写引擎将查询字符串附
redirect 301 /test.html http://www.domain.com/test2.html
工作,但我有一些像这样的网址
redirect 301 /test.asp?Group=100 http://www.domain.com/test3.html
由于某些原因,这些都不起作用
谢谢。重定向指令(据我所知)只在路径上匹配,而不是查询字符串。相反,请使用
重写规则
。QSA
指示重写引擎将查询字符串附加到新的重定向URL上
RewriteEngine On
RewriteRule ^test\.asp http://www.domain.com/test3.html [L,R=301,QSA]
以下是您提供的URL的一组规则:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} =group=113 [NC]
RewriteRule ^group\.asp$ http://domain.dk/til-born.htm? [NC,R=301,L]
RewriteCond %{QUERY_STRING} =product=1136 [NC]
RewriteRule ^product\.asp$ http://www.domain.dk/til-born/bukser.html? [NC,R=301,L]
/group.asp?group=113¶m=value
,因为查询字符串是group=113¶m=value
,而不仅仅是group=113
要使这种重定向工作(当查询字符串中有一些可选参数时),您必须对其进行修改:RewriteCond%{query|string}(^ |&)group=113(&|$)[NC]
——这将匹配查询字符串中的任何位置(group=113
和group=11366
仍然不同,因此这里没有问题)
只需删除查询字符串,它就会原封不动地复制到新的URL(例如,
redirect 301/test.asphttp://www.domain.com/test3.html
)。如果只需要在特定查询字符串上重定向(例如,当Group=100
时重定向,但如果有任何其他值则忽略)。。然后你必须使用mod_重写。嘿,Michael和LazyOne谢谢你的回答,这正是我所震惊的。我有大约50个不同的查询字符串需要被301重定向到一个新的url。懒人-你写我必须使用mod_重写-我会尝试谷歌一点。Thanks@Martin在用户名之前使用@,否则不会通知用户您的评论。如果你愿意,我可以给你提供这样的重写规则,但是你必须检查你的服务器上是否启用了mod_rewrite(大多数情况下是这样)。@LazyOne好的,谢谢你的@advice,我不知道,我对在stackoverflow上写这篇文章还不熟悉,通常我可以在这里的其他线程中找到答案-这是个金矿。如果你能为我提供这样的服务,那就太好了。为了澄清,我有两个不同的查询字符串,比如:group.asp?group=113和/product.asp?product=1107。应该启用Mod rewrite。谢谢,我非常感谢您的帮助。@Martin用详细信息更新您的问题——您提供的信息越多越好。请提供从URL=>到URL。@LazyOne redirect 301/group.asp?group=113 redirect 301/product.asp?product=1136等。我希望这足够了,唯一改变的是ID号