.htaccess - 如果访客使用移动设备则设置环境变量

.htaccess - set environment variable if visitor uses mobile device

我们是 运行 magento 2 在线商店,我们还提供一些 CMS 页面。

如果用户使用的是移动设备,我需要将环境变量 MAGE_RUN_CODE 设置为 app

目前,如果用户通过 app.company.de 访问我的网站,则变量设置为 app。如果他使用 company.de,则设置 默认值

SetEnv MAGE_RUN_TYPE store
SetEnvIf Host ^company.de MAGE_RUN_CODE=default
SetEnvIf Host ^app.company.de MAGE_RUN_CODE=app

但我需要网站自动检测用户是否在移动设备上,然后相应地设置环境变量。


我无法弄清楚如何使用 SetEnvIf 读取用户代理,所以我尝试重写 URL 以便我的 SetEnvIf Host... 条件匹配,以便 MAGE_RUN_CODE 设置为 app,但如果我从移动设备访问我的网站 http://company.de,它什么都不做,它只是打开它没有重定向。

这是我的尝试(找到顶部 ):

# Read User Agent and see if it matches one of the mobile ones
# If YES then redirect to https://app.company.de/

RewriteEngine on
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 ^/?(.*)$ https://app.company.de/ [L,R=302,QSA]

# Set the Environment for the multistores

SetEnv MAGE_RUN_TYPE store
SetEnvIf Host ^company.de MAGE_RUN_CODE=default
SetEnvIf Host ^app.company.de MAGE_RUN_CODE=app

我做了一些研究,发现您也可以使用 User-Agent。 我只需要这段代码:

SetEnv MAGE_RUN_TYPE store
SetEnvIf Host ^company.de MAGE_RUN_CODE=default
SetEnvIf Host ^app.company.de MAGE_RUN_CODE=app
SetEnvIf User-Agent Android|Opera MAGE_RUN_CODE=app