【问题标题】:Redirecting to mobile website with REQUEST_URI appended重定向到附加了 REQUEST_URI 的移动网站
【发布时间】:2013-09-03 22:21:32
【问题描述】:

您好,我想将移动用户重定向到移动网站。 我在 htaccess 文件中使用了这个重写规则,取自 detectmobilebrowser.com

RewriteCond %{HTTP_USER_AGENT} <someconditions here>
RewriteCond %{HTTP_USER_AGENT} <someconditions here>

RewriteRule ^$ http://m.mysite.com/ [R,L]

如果移动用户打开类似的网址,它可以正常工作

www.mysite.com

用户被成功重定向到

m.mysite.com

但如果用户打开一个类似的网址

www.mysite.com/support

然后重定向不会发生并且页面的完整版本显示给用户而不是重定向到移动版本,我需要将用户重定向到

m.mysite.com/support

类似

www.mysite.com/contact 到 m.mysite.com/contact

简而言之,我希望在重定向时附加 REQUEST_URI。

【问题讨论】:

    标签: .htaccess redirect mod-rewrite


    【解决方案1】:

    更改规则以匹配任何 URI。目前你让它匹配^$,它是空白的,只会匹配URI /。尝试将该行更改为:

    RewriteRule ^(.*)$ http://m.mysite.com/$1 [R,L]
    

    【讨论】:

    • 这样做会附加查询字符串,而不是 request_uri
    • @manish 查询字符串永远不会被捕获,并且它不是 用于匹配规则模式的 URI 的一部分。除非规则的目标中有?,否则查询字符串将始终附加到末尾。如果您不希望自动附加查询字符串,则在末尾包含一个?,但$1 是URI,而不是查询字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多