1

我正在开发一个基于 .NET 的移动网站 (m.website.com)。我在主站点(非移动)上使用 IIRF 进行 URL 重写。

现在,如果他们登陆主站点 (www.website.com),则需要将任何移动用户重定向到移动站点。我可以通过检查 IIRF 中的用户代理并重定向来实现这一点。

我面临的问题是:

移动站点将有一个返回主站点的链接。如果移动用户单击此链接,则不应将他重定向回移动设备。

我尝试遵循这篇文章中提到的 htaccess 解决方案 -使用 htaccess 的移动重定向,但它不能与 IIRF 一起正常工作。RewriteCond对于{QueryString}无法正常工作。另外,我不确定我是否可以从 IIRF 本身设置一个 cookie,就像链接中提到的那样。

我已经在这个问题上苦苦挣扎了几个小时,如果有人可以提供帮助,那就太好了。

我尝试的另一种方法是检查HTTP_REFERER以避免重定向,如果引用站点是移动站点,但效果不佳。

4

1 回答 1

0

IIRF 不提供[co]设置 cookie 的修饰符- 但您应该能够在 .NET 中轻松地做到这一点。

{HTTP_COOKIE}然而,IIRF 支持通过在您的条件中使用来检查 cookie 值。

{QUERY_STRING}也支持(只要确保包括下划线)。此外,它是HTTP_REFERER,不是HTTP_REFERRER我们必须忍受的拼写错误......)。

因此,您可以根据您链接的问题中的用户代理(该列表来自哪里??)来 调整重写规则。在以下情况下重定向到移动网站:

  • 请求的网址还不是移动网站
  • url 不包含无重定向查询字符串(?noredirect=1或类似的)
  • 重定向cookie不存在
  • 用户代理匹配来自链接问题的神奇长列表
于 2011-11-13T21:47:52.283 回答