在 IIS 使用 web.config 配置域名端口跳转
作者:V君 发布于:2020-2-9 0:21 Sunday 分类:小服杂记
— TL;DR —
按需将以下配置节点添加到 web.config ,修改目标域名,完成。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions allowUnlisted="true">
<remove fileExtension=".cs" />
</fileExtensions>
</requestFiltering>
</security>
<rewrite>
<rules>
<rule name="RedirectGogs" stopProcessing="true" enabled="true">
<match url="^gogs/(.*$)" />
<action type="Redirect" redirectType="Temporary" url="https://gogs.topcl.net:8443/{R:1}"/>
</rule>
<rule name="RedirectExaWww" stopProcessing="true" enabled="true">
<match url="^(?![\._].*$).*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www\.example\.com" />
</conditions>
<action type="Redirect" redirectType="Temporary" url="https://blog.example.com:8443/{R:0}"/>
</rule>
<rule name="RedirectExa" stopProcessing="true" enabled="true">
<match url="^(?![\._].*$).*" />
<conditions>
<add input="{HTTP_HOST}" pattern="example\.com" />
</conditions>
<action type="Redirect" redirectType="Temporary" url="https://blog.example.com:8443/{R:0}"/>
</rule>
<rule name="DefultRedirectBlog" stopProcessing="true" enabled="true">
<match url="^(?![\._].*$).*" />
<action type="Redirect" redirectType="Temporary" url="https://blog.topcl.net:8443/{R:0}"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
— 听我扯扯 —
咋一看,不就是 rewrite + redirect (307) 不就好? 其实没有那么简单,比如源代码连接里以 .cs 后缀的代码文件 (例)就在跳转的时候被 IIS 拦下来 404 了,因此还得额外加白。你可能会担心安全风险,但我这个空间仅仅用来跳转,根目录下只有这个 web.config 文件。
二月份的文章也只能这么水了,因为疫情只能把自己关在家
— 更新 —
将正则表达式改为 ^(?![\._].*$).* 可以忽略以指定字符开头的路径,方便申请 Let's 证书和临时放些文件,使配置更灵活
— 更新Ⅱ —
使用 conditions 实现别名支持,使空间变跳转 hub,将其利用价值榨干
看来电信个人宽带的443端口也没了
作者:V君 发布于:2020-1-26 4:53 Sunday 分类:小服杂记
由于最近几天回家过年,很晚才发现博客打不开,经过各种排查发现似乎是443端口被封了。只好用外部空间来搞了个重定向到8443端口,使博客暂时以一个不太好看的网址重见天日。
之前已发布的链接依旧有效。
这就是一月份的文章?
标签: 端口封杀
开始接触 STM32 —— Keil μVision 和 Visual Studio 相比太难用啦!
作者:V君 发布于:2019-12-31 10:59 Tuesday 分类:折腾手记
最近开始摸STM32,用 Keil μVision 来编写代码和调试。单片机型号是 F103 用 ST-Link/v2 以 SWD 的方式下载和调试。尽管 Keil 在占据的市场份额不小,但对于我这个被 VS 宠坏了的家伙来说,太难用啦!先列举些槽点,然后再看看有没有代替方案,如果能用 VS 来搞 STM32 开发就好咯……
吐槽:文档页签不能拖动
吐槽:编译、下载、启动调试,似乎不能一气呵成,得分开操作
但愿是我不知道怎么配置一键,难道大伙们都能忍?
吐槽:智能感知……只能说是聊胜于无吧,尽管默认绑了 F12——
可以转到定义,但在找到多个重复定义时,你蹦出一个符号窗格给我……
吐槽:项目 wide 搜索,貌似没有像VS那样列出匹配,只能上一个、下一个来导航
但愿又是默认不启用的功能,只是我不没调出来……
代替方案?起初想到用 VsCode 来编辑代码,然后再回到 Keil 调试,考虑到 C 语言过于依赖环境,多一个少一个符号定义都会发生很大变化,估计 VsCode 的智能感知估计也不会好到哪里去吧……用各种关键字喂咕狗,找到一个叫做 VisualGDB 的扩展,主页上提到可以用来搞 STM32,但目前还没有试试看能不能用……(咕咕咕)后话:剁手买了正版,很香!
月底了,不刷存在感会觉得很方,必须凑合着发点什么出来
Xamarin Android 新手历险记之 AccessibilityService
作者:V君 发布于:2019-11-30 19:49 Saturday 分类:折腾手记
最近开始折腾 Android 的原生功能,想获取显示在屏幕上的界面元素。说到 Android 还想用我大 C♯ 去写,当然就是 Xamarin 啦!和往常一样,还是从 TL;DR 开始,然后再展开详细。
- TL;DR -
1. 在项目中新增一个类,本例命名为 MyAccessibilityService
2. 使其继承于 AccessibilityService (Android.AccessibilityServices)
3. 追加必要的 Attribute ,如 Service、IntentFilter、MetaData
4. 重写 OnServiceConnected 方法增加 SetServiceInfo 调用
5. 重写 OnAccessibilityEvent 根据 ServiceInfo 做对应动作,达到目的
- 展开 -
1. 略 (o ‵-′)ノ”(ノ﹏<。)
2. 略 (o ‵-′)ノ”(ノ﹏<。)
3. 这里可以稍稍展开
✸ Service 特性主要是 Label 和 Permission
> 用 Label 来指定服务的显示名称
> 用 Permission 指定必须的权限 BindAccessibilityService
✸ IntentFilter 喂进去一个 "android.accessibilityservice.AccessibilityService"
✸ MetaData 喂进去 "android.accessibilityservice" 和 Resource = XML 资源路径
> XML 路径一般是 "@xml/accessibility_service_config",在对应地方写好配置文件即可
> 为了能访问界面元素,确保在配置文件中启用 android:canRetrieveWindowContent
⚠ 注意 MetaData 第一个参数写错不会有检查,只会让服务不按XML配置文件工作
4. 这里主要是创建一个 AccessibilityServiceInfo 实例,然后喂给 SetServiceInfo 方法
> Flags 属性确保有 RetrieveInteractiveWindows 位
> EventTypes 用来给接下来的地方做事件筛选,比如用 WindowsChanged
5. 到这里就可以开始搞事情啦
> 使用当前对象的 RootInActiveWindow 属性获取界面元素的树状结构根节点
- 再稍稍补充一下 -
如果只有 Service 而没有主界面,那就得手动跑到系统设置的辅助功能去启动服务。
有的国产Android手机系统界面被魔改得连辅助功能入口都被砍掉,这太尴尬。
我们可以在主界面做个按钮来导航到辅助功能设置:
1. 使用 Android.Provider.Settings.ActionAccessibilitySettings 实例化 Intent
2. 将其喂给 StartActivity 就可以实现捷径了
- 感受 -
这次能分担给大家的东西并不多。
我不会说因为 MetaData 第一个参数写错,然而没有报错,也获取不到界面元素,让我花了很多时间才找到问题所在。这个细节上咕狗做得很不厚道呀……
说好的每月一篇文章,这次有点踩线呀,虽然创建时间是19点,但发布时已经超过零点了,咕咕咕
Auto Scroll Utility for Windows 10 来自ThinkPad的桌面实用小工具
作者:V君 发布于:2019-10-26 16:03 Saturday 分类:应用软件
今儿咱来分享一个实用小工具,尽管不是解决问题也可以有TL;DR,但先听我扯扯吧
先扯
厂里配的工作机是ThinkPad笔记本电脑,拿到手之后当然首先是装系统和打驱动。
比起使用助手之类的玩意儿去弄脏系统,我更倾向于自己从官网下载。
去官网对应型号支持页面去按需选择下载。考虑到笔记本的快捷键功能,我顺便也把实用工具全都装上了。
在使用的过程中发现:在部分被拖到屏幕外的窗口,用鼠标在窗口上往屏幕外的方向继续移动,
这时候窗口会以反方向往屏幕中移回来,具体看这个动图。
起初以为这是Windows10的新特性,想在自己的电脑也启用它,用尽各种关键字把咕狗翻个底朝天都没找到…
其他同事同样用Windows10也没有这个特性。我就猜是不是OEM实用工具了,翻找进程发现了它。
扯完了,让我们来获取它吧!即使你的电脑不是ThinkPad,通过一些手动操作还是可以使用的。
TL;DR
1. 咕狗“auto scroll utility”找到联想官网下载页,我这儿看到的文件名是 gfvv33ww.exe
2. 下载执行安装,默认会将文件释放到 C:\DRIVERS\AutoScroll 安装向导完成之后无法再使用图形界面继续
3. 将 _i386 文件夹中的 virtscrl.exe 和 virtscrl.dll 弄出来,这时候安装程序生成的文件夹可以删掉了
p.s. 已经确认即使在64位系统下 _i386 的版本也能正常工作,文件比 _amd64 更小,何乐不为
4. 之后就是想办法用 system 身份运行 virtscrl.exe 了,一旦它跑起来就能享受推窗口的体验
对TL;DR的补充(新手指引)
如何让 exe 以 system 身份运行?
方法有很多,但除了用 Sysinternals 出品的 PsExec 之外其他方法都比较麻烦
用法:PsExec.exe -i -s -d cmd /c start /min C:\path\to\virtscrl.exe
首次使用会弹出许可协议,需要接受才能使用
将它设为开机启动,然后享受吧!
继续补充:这个小工具在远程桌面下无法正常工作
blogger
Google Web Translator
热门日志
随机日志
最新日志
最新评论
- V君
@Quartz:(出现)... - Quartz
怎么不见人了呢... - V君
@Soar:DHCP 协议相... - V君
@Soar:当然是非... - Soar
@V君:谢谢 有空... - Soar
搞一个 1230v3+B85... - V君
@Soar:另外,也可... - V君
@Soar:iscsi服务端... - Soar
难怪这么卡,尤其... - Soar
clone了源码,提示...
分类
存档
- 2023年7月(1)
- 2023年5月(1)
- 2022年11月(1)
- 2022年10月(1)
- 2022年9月(1)
- 2022年8月(1)
- 2022年7月(1)
- 2022年6月(1)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(1)
- 2022年2月(1)
- 2022年1月(1)
- 2021年12月(1)
- 2021年11月(1)
- 2021年10月(1)
- 2021年9月(1)
- 2021年8月(1)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(1)
- 2021年4月(1)
- 2021年3月(1)
- 2021年2月(1)
- 2021年1月(1)
- 2020年12月(1)
- 2020年11月(1)
- 2020年10月(2)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(1)
- 2020年5月(1)
- 2020年4月(2)
- 2020年3月(3)
- 2020年2月(1)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年10月(1)
- 2019年9月(1)
- 2019年8月(2)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(1)
- 2019年3月(1)
- 2019年2月(1)
- 2019年1月(2)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(3)
- 2018年9月(4)
- 2018年8月(6)
- 2018年7月(4)
- 2018年6月(1)
- 2018年5月(2)
- 2018年4月(2)
- 2018年3月(3)
- 2018年2月(1)
- 2018年1月(1)
- 2017年12月(1)
- 2017年10月(2)
- 2017年9月(1)
- 2017年8月(2)
- 2017年7月(1)
- 2017年6月(5)
- 2017年5月(2)
- 2017年4月(2)
- 2017年3月(3)
- 2017年2月(2)
- 2017年1月(2)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(3)
- 2016年9月(4)
- 2016年8月(2)
- 2016年7月(4)
- 2016年6月(3)
- 2016年5月(1)
- 2016年4月(4)
- 2016年3月(3)
- 2016年2月(1)
- 2016年1月(5)
- 2015年12月(4)
- 2015年11月(5)
- 2015年10月(1)
- 2015年9月(6)
- 2015年8月(4)
- 2015年7月(1)
- 2015年6月(6)
- 2015年5月(3)
- 2015年4月(3)
- 2015年3月(2)
- 2015年2月(1)
- 2015年1月(3)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年9月(3)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(3)
- 2014年4月(1)
- 2014年3月(1)
- 2014年2月(2)
- 2014年1月(1)
- 2013年12月(2)
- 2013年11月(2)
- 2013年10月(1)
- 2013年9月(3)
- 2013年8月(14)
- 2013年7月(7)
- 2013年4月(1)
- 2013年3月(4)
- 2013年2月(6)
- 2013年1月(6)
- 2012年12月(8)
- 2012年11月(6)