如何通过.htaccess实现同域名下按设备分配不同站点目录
同域名下根据访问设备自动切换站点目录的.htaccess配置方案
首先请确保你的Apache环境已经启用mod_rewrite模块,且允许根目录使用.htaccess文件覆盖配置。
完整配置
将以下内容添加到public_html根目录的.htaccess文件中即可:
RewriteEngine On # 匹配移动端设备的User-Agent标识 RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera\s+mobile|palmos|webos) [NC] # 排除已经指向mobile目录的请求,避免重写循环 RewriteCond %{REQUEST_URI} !^/mobile/ # 将所有请求重写到mobile目录下的对应路径 RewriteRule ^(.*)$ /mobile/$1 [L]
规则说明
[NC]参数表示匹配User-Agent时不区分大小写,你可以根据业务需要在规则中补充更多需要适配的移动端UA关键字- 规则不会改变用户访问的域名,仅在服务器内部将请求路径映射到对应目录,用户侧无感知
- 如果后续需要添加其他重写规则,请放置在本套规则之后,避免被
[L]参数截断执行
异常排查
如果配置后出现500内部错误,优先检查两个点:
- 主机是否未启用
mod_rewrite模块,可联系服务器提供商确认 .htaccess文件是否存在语法错误,比如特殊字符未转义、规则书写不规范
内容的提问来源于stack exchange,提问作者user16643863
相关产品推荐
相关产品推荐

