关于使用 Laravel 时,pc 和移动是两套模版,使用是不同的域名

比如,pc使用www.baidu.com,而移动站使用 m.baidu.com
比如说在手机上打开pc站(www.baidu.com/a/b/c.html)的时候,自动跳转到m.baidu.com/a/b/c.html对应的网址下,求指点,谢谢

讨论数量: 9

我的想法是,通过 $_SERVER['HTTP_USER_AGENT'] 判断是移动端还是PC端,然后重定向。

4年前 评论

@cola 判断这个很好判断,关键是重新向的时候,应该怎么操作?有没有具体的方式方法, 谢谢

4年前 评论

@livelys 好像是有点问题,如果得不到路由的话感觉只能前端传过来。然后 header('location:'.$url);

4年前 评论

@cola 能不能用中间件操作?

4年前 评论
Shuyi

Route::subdomain('m') 是你在找的,支域名路由器

4年前 评论

@Shuyi 能给个完整的写法吗?没搜到这个函数用法啊。。。。。

4年前 评论

前端操作应该可以吧,用js字符串替然后再重定向

4年前 评论
Shuyi

@livelys 这样:

Route::domain('{subdomain}.myapp.com')->group(function () {
    Route::get('index', function ($subdomain) {
          //如果subdomain是m,就渲染移动版本,否则正常版本
           $type == 'subdomain'
               ? return view('mobile.index');
               : return view('index');
    });
});
4年前 评论
lafans 3年前

处理方法如下: 1.通过nginx

location / {
    #默认PC端访问内容
    root /usr/local/website/web;

    #如果是手机移动端访问内容
    if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
    {
        root xxx#手机端路径
    }

    index index.html index.htm;
}

2.通过前端控制 通过js拿浏览器客户端标识符

<script type="text/javascript">// <![CDATA[
if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
    if(window.location.href.indexOf("?mobile")<0){
        try{
            if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
                                //触屏手机版地址
                window.location.href="http://m.264.cn";
            }else if(/iPad/i.test(navigator.userAgent)){
                                //pad版地址
            }else{
                                //普通手机版地址
                window.location.href="http://wap.264.cn"
            }
        }catch(e){}
    }
}
// ]]></script>

具体可以看百度搜索 看下这篇文章

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!