【问题标题】:Redirect to mobile version, respecting domain, with htaccess使用 htaccess 重定向到移动版本,尊重域
【发布时间】:2013-10-02 07:37:07
【问题描述】:

我有一个有多个域的网站,即:

www.site.co.uk
www.site.ru
www.site-german.de

手机版在/mobile/

如何从当前域重定向到/mobile/ 路径?

我相信我需要检查该域是否是列出的域之一并且当前路径不是移动的,对吗? (我的正则表达式真的很糟糕..)

这是我现在拥有的:

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    RewriteRule ^(.*)$ http://example.com/mobile/$1 [L,R=302]

这可行,但正如您所见,它不会检查当前路径是否为“/mobile/”,也不会检查其他域..

有什么提示吗?

【问题讨论】:

    标签: regex apache .htaccess redirect mobile


    【解决方案1】:

    也许通过添加RewriteCond 来检查当前路径,使用负正则表达式组 (?!...),如:

    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} "ipod|iphone|ipad|android|palm|blackberry|googlebot-mobile" [NC]
    RewriteCond %{REQUEST_URI} ^(?!/mobile/)
    RewriteRule ^(.*)  /mobile/$1   [QSA,L,R=301]
    

    【讨论】:

    • 感谢您的回答!似乎可以工作,但有些图像无法正确解析,知道为什么吗?
    • 在生成的html源代码中检查资产路径是否正确(相对/绝对问题导致重定向)。
    • 在这种情况下,您应该尝试通过添加RewriteCond 来禁用图像文件的重写规则,例如:RewriteCond %{REQUEST_FILENAME} !\.(jpg|gif)$
    • 所以我只是在 te rewriteRule 之前添加它?
    • 是的,尝试在 rewriteRule 指令之前添加此指令(不要忘记根据自己的需要调整文件扩展名模式)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2023-03-04
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多