【问题标题】:redirect to mobile site using htaccess使用 htaccess 重定向到移动网站
【发布时间】:2026-01-22 19:20:04
【问题描述】:

如何将用户重定向到我的移动页面?

我在 htaccess 上使用此代码

RewriteEngine on
RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|#opera mobile|palmos|webos" [NC]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT}  "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteRule ^$ http://example.com/mobile [L,R=302]

只有在我访问 site.com 时才有效,它会将我重定向到 http://example.com/mobile 但我希望它是这样的,即使我转到 http://example.com/page1.php 或任何其他页面,它也应该为所有移动用户将我重定向到 http://example.com/mobile

请帮帮我

【问题讨论】:

    标签: .htaccess redirect mobile


    【解决方案1】:

    好吧,换个方式

    RewriteRule ^$ http://example.com/mobile [L,R=302]
    

    RewriteRule ^/?(.*)$ http://example.com/mobile [L,R=302]
    

    或许

    RewriteRule ^/?(.*)$ http://example.com/mobile/$1 [L,R=302,QSA]
    

    要重定向到不同的主机名(有时称为“子域”),如以下评论中所述,您可以这样做:

    RewriteRule ^/?(.*)$ http://m.example.com/$1 [L,R=302,QSA]
    

    一般性评论:对于这种情况,我认为 http-301 确实比 http-302 更有意义...

    【讨论】:

    • 谢谢亲爱的,但我想问你 1 个问题,
    • 你知道我喜欢什么吗?例如,我的移动网站位于子域上。我希望它就像我转到example.com/page1.php 时一样,它应该将我重定向到m.example.com/page1.php 以及所有其他页面
    • 我将其添加到答案中。
    • [L,R=302]和[L,R=302,QSA]有什么区别
    • @Black apache 重写模块的文档将回答这个问题:httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule 简而言之:“标志”负责在重定向期间保留请求中的潜在查询字符串。跨度>