【问题标题】:Mod_rewrite (htaccess) QSA and removing charactes from appended query stringMod_rewrite (htaccess) QSA 并从附加查询字符串中删除字符
【发布时间】:2015-08-16 16:20:23
【问题描述】:

我一直在为一些 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://: 时工作正常。

我哪里做错了?

谢谢!

【问题讨论】:

  • 上述asp URL应该重定向什么URL?

标签: apache .htaccess mod-rewrite redirect qsa


【解决方案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]

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

【讨论】:

  • 不知何故不适用于整个RewriteCond - 仅适用于RewriteCond %{QUERY_STRING} ^documentid=(\d+)
  • 我已经在我的 Apache 上测试了这条规则,它运行良好。确保这是RewriteEngine On 行下方的第一条规则。您必须输入以进行测试的 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
  • 我有 RewriteEngine On 并且我已经在运行 cPanel 的两台不同服务器上测试了该规则 - 两者都无法通过该条件
  • 看起来 WP htaccess 规则(某种额外的)会在您的解决方案中产生问题,顺便说一句,它在干净的 htaccess 文件上工作正常。将深入挖掘如何将它与现有的结合起来。谢谢!
猜你喜欢
  • 2014-02-02
  • 2013-03-26
  • 2011-03-28
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 2016-03-26
相关资源
最近更新 更多