1

我一直在为一些 htaccess 重定向而苦苦挣扎。我只是花了一些时间阅读和搜索,但找不到适合我的场景的解决方案。

我正在将旧网站 (ASP) 的 301 重定向到新网站 (Wordpress)。旧页面有我需要处理的参数查询,但也从中删除“http://”字符串以使重定向工作。

要重定向的示例 URL(旧)如下所示:

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

重定向到:

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

和 .htaccess 代码来重定向它:

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://或删除时工作正常。:

我在哪里犯了错误?

谢谢!

4

1 回答 1

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]

确保在测试之前清除浏览器缓存。

于 2015-06-02T18:18:47.123 回答