创build301redirect不希望工作

我正试图创build一个301redirect从一个系统移动到另一个。 我有固定的过程匹配旧的url到新的url,并为我生成所有的301,但对于我的生活,我无法得到.htaccessredirect到火。

我有一种感觉,它必须做的事实,我必须使用查询string,以便在两个系统之间。 反正这里是我现在在我的.htaccess文件中:

RewriteEngine on Options +FollowSymLinks redirect 301 /cgi-bin/classifieds/classifieds.cgi?db=autos&website=FossilCars&language=&session_key=&search_and_display_db_button=on&results_format=long&db_id=46990&query=retrieval http://domain.com/triumph/tr6/46990 

有谁知道我在这里可能会做错什么? 我已经禁用了我的Apacheconfiguration中的cgi-bin目录(我知道,因为它现在正在加载我们的自定义404页面,而不是通用的)。

谢谢

约什·彭宁顿

显然Apache在确定URLredirect的匹配时不使用查询string。 答案是设置一个URL重写。 这是一个适合我的例子:

 # Redirect From # /cgi-bin/classifieds/classifieds.cgi?db=autos&website=FossilCars&language=&session_key=&search_and_display_db_button=on&results_format=long&db_id=46990&query=retrieval # To # /triumph/tr6/46990 RewriteCond %{REQUEST_URI} /cgi-bin/classifieds/classifieds.cgi$ RewriteCond %{QUERY_STRING} ^db=autos&website=FossilCars&language=&session_key=&search_and_display_db_button=on&results_format=long&db_id=46990&query=retrieval$ RewriteRule ^.*$ http://example.com/triumph/tr6/46990? [L,R=301] 

这个? 在RewriteRule行的最后,从redirect的URL中删除查询string。