我一直在努力解决一些htaccess重定向问题。我只是花了一些时间阅读和搜索,无法得到适合我的方案的解决方案。
我正在将旧网站(ASP)的301重定向转换为新网站(Wordpress)。旧页面有参数查询,我需要处理它,但也从中删除'http://'字符串以重定向工作。
要重定向的示例网址(旧)如下所示:
重定向到:
http://www.domain.org/index.asp?documentID=2410&utm_source=IT+Travel+Reminder&utm_medium=Informz%2FnetFORUM&utm_campaign=IT%2FTravel+Reminder%2FMonthly+Monthly+Travel+Reminder&zbrandid=4050&zidType=CH&zid=28841368&zsubscriberId=1036792259&zbdom=http://my.informz.net
和.htaccess代码重定向它:
http://www.domain.org/permalink-2410/?qs=true&utm_source=IT+Travel+Reminder&utm_medium=Informz%2FnetFORUM&utm_campaign=IT%2FTravel+Reminder%2FMonthly+Monthly+Travel+Reminder&zbrandid=4050&zidType=CH&zid=28841368&zsubscriberId=1036792259&zbdom=my.informz.net
但是某种程度上没有像我预期的那样工作
RewriteCond %{QUERY_STRING} ^documentid=2410(&.*)$ [NC]
RewriteRule ^index\.asp(.*):(.*)$ http://www.domain.org/permalink/?qs=true%1%2 [L,R=301,QSA]
当我从查询字符串中删除RewriteCond %{QUERY_STRING} ^documentid=2410(&.*)$ [NC]
RewriteRule ^index\.asp$ http://www.domain.org/permalink/?qs=true%1 [L,R=301,QSA]
或http://
时,正常工作。
我在哪里弄错了?
谢谢!
答案 0 :(得分:1)
尝试此规则:
RewriteCond %{QUERY_STRING} ^documentid=(\d+)(&.+?)http://(.+)$ [NC]
RewriteRule ^index\.asp$ http://www.domain.org/permalink-%1/?qs=true%2%3 [L,R=302,NC,NE]
确保在测试之前清除浏览器缓存。