typecho - 关于php的链接跳转问题
怎么让typecho搭建的网站,电脑访问时访问https://**.**
,而手机访问时 还是http://**.**
,在很多网站问过,不过没人回答(这个问题很难吗?) 所以被迫来到这里 希望有大神能帮我解决
万分感谢~~
**.**
代表我的网站
回复内容:
怎么让typecho搭建的网站,电脑访问时访问https://**.**
,而手机访问时 还是http://**.**
,在很多网站问过,不过没人回答(这个问题很难吗?) 所以被迫来到这里 希望有大神能帮我解决
万分感谢~~
**.**
代表我的网站
如果你用nginx,那么可以尝试在nginx配置中写:
<code>server { server_name **.**; #你的网站 listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server_nopwd.key; location / { 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)|(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))"){ rewrite ^/(.*)$ http://**。**/$1 ; } } server{ server_name **.**; listen 80; location /{ if ($http_user_agent ~ "常见桌面UA"){ rewrite ^/(.*)$ https://**。**/$1 ; } } } </code>
如果你网站有入口文件index.php,那么在入口文件中写会更加简单:
以下是https的入口文件,http的入口文件请讲逻辑反转即可。
<code><?php $the_host = $_SERVER['HTTP_HOST'];//取得当前域名 $the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分 if(is_mobile_user_agent()//判断UA是否手机浏览器或者PC浏览器。此函数的实现自己去百度搜 { header('HTTP/1.1 301 Moved Permanently'); header('Location:http://**.**'.$the_url); // } ?> </code>
来自:www.typechodev.com
写个插件,PHP 判断 UA 对手机端进行跳转。
最简单的方法在入口页面做判断
可以像www.qq.com那样在页面
里用JS进行重定向:<code> <script type="text/javascript"> if(window.location.toString().indexOf('pref=padindex') != -1){ }else{ 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|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){ window.location.href="http://xw.qq.com/index.htm"; }else if(/iPad/i.test(navigator.userAgent)){ window.location.href="http://www.qq.com/pad/" }else{ window.location.href="http://xw.qq.com/simple/s/index/" } }catch(e){} } } } </script> </code>
这个之前面试的时候被问到一个这样的问题,相同的uri如何区分客户端。
第一种就是一楼的方法,通过nginx判别然后重定向url。
第二种就是PHP对客户端的判断。比如在CI框架中,可以在入口文件对客户端进行检测然后通过路由获取客户端对应的资源。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。
