求助各位大神
服务器端设置pc手机端自适应301跳转规则
手机访问:pc端自动跳转手机站
电脑访问:手机站自动跳转pc站
当手机用户访问站点的PC页时,站点将其自动适配到该PC页面对应的手机页
首页
pc站 www.****.com
手机站 m.****.com
栏目页
pc站 www.****.com/1234/
手机站 m.****.com/1234/
内容页
pc站 www.****.com/1234/1222/
手机站 m.****.com/1234/1222/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在服务器端设置PC和手机端的自适应301跳转规则,通常需要在Web服务器配置文件中进行设置。这里以两种常见的Web服务器软件Apache和Nginx为例,给出相应的配置示例。
在Apache服务器中,可以使用.htaccess
文件来实现跳转规则。请确保你的Apache配置允许使用.htaccess
文件(一般在httpd.conf
或apache2.conf
中通过AllowOverride All
设置)。
# 手机访问PC站时跳转到手机站
RewriteEngine On
RewriteBase /
# 检查User-Agent是否包含常见的移动设备关键词
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
# 跳过已经为移动版的URL
RewriteCond %{REQUEST_URI} !^/m/
# 实施跳转
RewriteRule ^(.*)$ http://m.%{HTTP_HOST}/$1 [L,R=301]
# 电脑访问手机站时跳转到PC站
RewriteCond %{HTTP_USER_AGENT} !(android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile) [NC]
# 只对m.开头的请求进行处理
RewriteCond %{HTTP_HOST} ^m\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
在Nginx服务器中,需要修改Nginx的配置文件(通常是nginx.conf
或者站点的特定配置文件,在/etc/nginx/sites-available/
目录下)。
server {
listen 80;
server_name www.example.com m.example.com;
if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {
rewrite ^(.*)$ http://m.example.com$1 permanent;
}
if ($host ~* "^m\.example\.com" && $http_user_agent !~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino") {
rewrite ^(.*)$ http://www.example.com$1 permanent;
}
# 其他Nginx配置...
}
请注意,上述代码中的example.com
应替换为你自己的域名。此外,User-Agent字符串可能需要根据实际情况调整,以更准确地识别移动设备与非移动设备。在实施这些规则之前,建议先在测试环境中验证其效果,确保不会影响正常访问。