typecho - 关于php的链接跳转问题
程序员文章站
2022-04-24 10:44:35
...
怎么让typecho搭建的网站,电脑访问时访问
https://**.**
,而手机访问时 还是http://**.**
,在很多网站问过,不过没人回答(这个问题很难吗?) 所以*来到这里 希望有大神能帮我解决
万分感谢~~
**.**
代表我的网站
回复内容:
怎么让typecho搭建的网站,电脑访问时访问https://**.**
,而手机访问时 还是http://**.**
,在很多网站问过,不过没人回答(这个问题很难吗?) 所以*来到这里 希望有大神能帮我解决
万分感谢~~
**.**
代表我的网站
如果你用nginx,那么可以尝试在nginx配置中写:
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 ;
}
}
}
如果你网站有入口文件index.php,那么在入口文件中写会更加简单:
以下是https的入口文件,http的入口文件请讲逻辑反转即可。
来自:www.typechodev.com
写个插件,PHP 判断 UA 对手机端进行跳转。
最简单的方法在入口页面做判断
可以像www.qq.com那样在页面
里用JS进行重定向:
这个之前面试的时候被问到一个这样的问题,相同的uri如何区分客户端。
第一种就是一楼的方法,通过nginx判别然后重定向url。
第二种就是PHP对客户端的判断。比如在CI框架中,可以在入口文件对客户端进行检测然后通过路由获取客户端对应的资源。
推荐阅读
-
关于PHP的curl开启问题探讨
-
关于swiper.js点击链接跳转后再次返回到轮播原位置的实现方法
-
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
-
关于php循环跳出的问题
-
PHP关于IE下的iframe跨域导致session丢失问题解决方法
-
php面试中关于面向对象的相关问题
-
关于PHP5.6+版本“No input file specified”问题的解决
-
关于 Safari 浏览器不支持 location [ window.location.href window.open()] 跳转问题的解决方案
-
PHP获取短链接跳转后的真实地址和响应头信息的方法
-
C# .Net Core 3.1 中关于Process.Start 启动Url链接的问题