开发者社区 问答 正文

中电云集智慧云手机网站优化自适配301跳转设置规则

求助各位大神


服务器端设置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/



展开
收起
木之鱼 2015-03-16 11:41:38 5485 分享 版权
阿里云 AI 助理回答

要在服务器端设置PC和手机端的自适应301跳转规则,通常需要在Web服务器配置文件中进行设置。这里以两种常见的Web服务器软件Apache和Nginx为例,给出相应的配置示例。

Apache服务器

在Apache服务器中,可以使用.htaccess文件来实现跳转规则。请确保你的Apache配置允许使用.htaccess文件(一般在httpd.confapache2.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的配置文件(通常是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字符串可能需要根据实际情况调整,以更准确地识别移动设备与非移动设备。在实施这些规则之前,建议先在测试环境中验证其效果,确保不会影响正常访问。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答