nginx配置ssl证书

本文最后更新于(2023-4-3 09:46:28),链接可能失效,内容可能难以复现。请注意甄别。
server {
# 证书
listen 443 ssl ;
server_name <domain1> <domain2>;
ssl_certificate /etc/nginx/crt/<webname>.pem;
ssl_certificate_key /etc/nginx/crt/<webname>.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

# HTTPS跳转
server {
listen 80 ;
server_name <domain1> <domain2>;
return 301 https://$server_name$request_uri;
}

禁止跳转到360搜索

本文最后更新于(2023-3-6 09:39:02),链接可能失效,内容可能难以复现。请注意甄别。
[MD] © Sunplace,2023

症状

使用360极速浏览器X,在设置搜索引擎为bing之后,打开新的标签页,是如下界面:
当我们在搜索框里输入任意文字时,会跳出一个下拉菜单显示推荐的词语,这不是bing的推荐词,而是360搜索的推荐词。在推荐词右下角会十分不醒目的显示“搜索联想词由360搜索提供
当我们点击这些推荐词就会直接跳转到360搜索的页面去了。
总而言之,就是鸠占鹊巢。

同样适用于不能修改新标签内容的情况。

如何解决

1.更换浏览器
2. 不更换浏览器(这样有些功能会无法使用,例如更换新标签页的背景)
2.1 打开浏览器安装路径,右键快捷方式-属性-打开文件所在的位置,在我电脑上的路径是:
C:\Users\Administrator\AppData\Local\360ChromeX\Chrome\Application\21.0.1180.0
2.2 将文件夹里的newtab.zip复制到其他位置
2.3 将newtab.zip里的new_tab.html鼠标拖出压缩包
2.4 编辑器(一般是记事本或者其他的代码编辑器)打开new_tab.html
2.5 直接将文件内容全部清除,改为如下内容:

<script>window.location.href='https://cn.bing.com/'</script>
https://cn.bing.com/可以替换为任意搜索引擎首页。

2.6 把修改好后的new_tab.html鼠标拖回压缩包里,如提示是否覆盖原文件,选择是。
2.7 将修改好的newtab.zip复制回之前的浏览器安装目录,并替换掉原有的newtab.zip。
2.8 右键newtab.zip,设置为只读。软件升级或者重装后,此文件会被修改,建议先备份好,之后再重复步骤2.7

离线使用Google Material Icons

本文最后更新于(2023-2-23 09:32:17),链接可能失效,内容可能难以复现。请注意甄别。
引用:https://stackoverflow.com/questions/37270835/how-to-host-material-icons-offline
1. 前往https://github.com/google/material-design-icons/releases下载最新的Releases包。 2. 解压后,将font文件夹整个上传到你的站点根目录。 3. 添加网站对字体格式的支持,在.htaccess文件里加入以下代码:
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
4. 创建一个css文件,来定义字体,(最新版本里只有ttf和otf两种格式):

文件结构

@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(iconfont/MaterialIcons-Regular.woff2) format('woff2'),
url(iconfont/MaterialIcons-Regular.woff) format('woff'),
url(iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;

/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;

/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;

/* Support for IE. */
font-feature-settings: 'liga';
}
5. 最后在HTML里调用图标 <span class="material-icons">face</span> 显示效果:
face

Willin Kan的反垃圾评论代码

本文最后更新于(2023-3-5 10:10:14),链接可能失效,内容可能难以复现。请注意甄别。
//Willin Kan的反垃圾评论代码
class anti_spam {
function anti_spam() {
if ( !current_user_can('level_0') ) {
add_action('template_redirect', array($this, 'w_tb'), 1);
add_action('init', array($this, 'gate'), 1);
add_action('preprocess_comment', array($this, 'sink'), 1);
}
}
function w_tb() {
if ( is_singular() ) {
ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
}
}
function gate() {
if ( !empty($_POST['w']) && empty($_POST['comment']) ) {
$_POST['comment'] = $_POST['w'];
} else {
$request = $_SERVER['REQUEST_URI'];
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';
$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];
$way = isset($_POST['w']) ? '手动操作' : '未经评论表格';
$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";
}
}
function sink( $comment ) {
if ( !empty($_POST['spam_confirmed']) ) {
if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.
die();
//方法二: 标记为 spam, 留在资料库检查是否误判.
//add_filter('pre_comment_approved', create_function('', 'return "spam";'));
//$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];
}
return $comment;
}
}
$anti_spam = new anti_spam();

(php)25.WordPress访问统计

本文最后更新于(2023-3-5 19:41:03),链接可能失效,内容可能难以复现。请注意甄别。
© Sunplace,2023 根据网上的灵感自己做了一个,省得伸手。 实现功能:
  • 真实的独立访客统计(UV)
  • 刷新页面不增加
  • 用户登录不增加(目前用户为网站管理员)is_user_logged_in()
  • 直接访问不增加(直接在浏览器输入本站地址)$_SERVER['HTTP_REFERER']==''()
数据库建表(建表语句):
# 举例用表,有wordpress数据库前缀"wp_"
# wp_addsettings结构有些复杂,如果只需要一个表来保存UV的值可以更简单
# 我的数据表另有其用
CREATE TABLE `wp_addsettings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`opname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`opval` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

# 插入初始值
INSERT INTO `wp_addsettings` VALUES (1, 'uniquevisitor', '0');
页面代码(PHP),在模板的footer.php中加入:
<?php
//将一个数字从低到高每隔三位加一个逗号
function numformat($num){
$num=strrev($num);
$num=chunk_split($num,3,',');
$num=strrev($num);
$num=ltrim($num,',');
return $num;
}

//使用session来记录访问数
session_start();
if(!is_user_logged_in()&&$_SERVER['HTTP_REFERER']!=''&&!isset($_SESSION['uv'])){
$_SESSION['uv']= 0;
$uv++;
$wpdb->update($wpdb->prefix.'addsettings',array('opval'=>$uv),array('opname'=>'uniquevisitor'));
}
echo '访客数(UV):'.numformat($uv);
?>