frp客户端配置文件frpc.toml参考

frp客户端配置文件frpc.toml参考

serverAddr = "x.x.x.x"
serverPort = 7000
auth.token = "xxxx"
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "xxxx"
webServer.password = "xxxx"
transport.tls.enable = true
transport.tls.disableCustomTLSFirstByte = true

[[proxies]]
name = "RDP"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = xx89
transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "webdav"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9999
remotePort = xx99
transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "frpc"
type = "http"
localIP = "127.0.0.1"
localPort = 7400
subdomain = "frpc"
transport.useEncryption = true
transport.useCompression = true

{{- range $_, $v := parseNumberRangePair "20,21,xx01-x03" "xx1,xx1,xx01-xx03" }}
[[proxies]]
name = "ftp-{{ $v.First }}"
type = "tcp"
localIP = "127.0.0.1"
localPort = {{ $v.First }}
remotePort = {{ $v.Second }}
transport.useEncryption = true
transport.useCompression = true
{{- end }}

本例子中含:常用的远程服务RDP,文件系统webdav以及ftp和网页服务http.

 

wordpress添加post_type自定义内容类型

wordpress默认的内容模型只有文章,如果想增加其它的,就要使用到  post_type,通过post_type自定义内容模型,例如影视,图片,链接等模型。

只需在主题的function.php文件中添加对应post_type代码即可。

相关注释说明:

# 在 'init' 钩子上注册自定义文章类型.
add_action('init', 'my_register_post_types');

/**
* 注册插件需要的文章类型
*
* @since 1.0.0
* @access public
* @return void
*/
function my_register_post_types()
{

// 设置文章类型参数
$args = (

// 文章类型的简介,貌似没有在 WordPress 内核中使用,不过我们可以在主题或插件中使用
'description' => __('This is a description for my post type.', 'wprs'),
// 字符串

// 文章类型是否公开给管理员或者前端用户使用,这个参数的值是后面很多参数的默认值
'public' => true,
// bool (default is FALSE)

// 是否可以在前端作为 parse_request() 的一部分查询该文章类型
'publicly_queryable' => true,
// bool (默认为 'public' 参数的值).

// 是否在前端搜索中隐藏该文章类型
'exclude_from_search' => false,
// bool (默认为 'public' 反值)

// 是否可以在导航菜单中选择
'show_in_nav_menus' => false,
// bool (默认为 'public' 参数的值)

// 是否在管理界面生成默认的管理界面,使用后面的参数,可以控制生成的 UI 组件,如果我们要构建自己的管理界面,
//设置该参数为 False
'show_ui' => true,
// bool (默认为 'public' 的值)

// 是否在管理菜单中显示,'show_ui' 参数必须设置为 True,这个参数才有效,我们页可以设置该参数为一个顶级菜单
//(如:'tools.php'),这种情况下,该文章类型的管理菜单出现在 Tools 菜单下面
'show_in_menu' => true,
// bool (默认为 'show_ui' 的值)

// 是否在管理工具条中显示该文章类型,如果设置为 true,WordPress 会在管理工具条中添加一个新建该文章类型文章的链接
'show_in_admin_bar' => true,
// bool (默认为 'show_in_menu' 的值)

// 该文章类型在管理菜单中出现的位置,'show_in_menu' 必须设置为 true,该参数才有用
'menu_position' => null,
// int (默认为 25 - 出现在「评论」菜单后面)

// 管理菜单的图标 URI,或者 Dashicon 的类名称. 参见: https://developer.wordpress.org/resource/dashicons/
'menu_icon' => null,
// 字符串 (默认使用文章图标)

// 属于该文章类型的文章是否可以通过 WordPress 导入/导出插件或者类型的插件导出
'can_export' => true,
// bool (默认为 TRUE)

// 是否暴露在 Rest API 中
'show_in_rest',
// 布尔值,默认为 false

// 使用 Rest API 访问的基础 URI 别名
'rest_base',
// 字符串,默认为文章类型别名

// 使用自定义 Rest API 控制器而不是默认的 WP_REST_Posts_Controller,自定义控制器必须继承 WP_REST_Controller
'rest_controller_class',
// 字符串,默认为 WP_REST_Posts_Controller

// 是否在删除用户时,删除他们撰写的文章
'delete_with_user' => false,
// bool (如果文章类型支持 ‘author’ 功能,该参数默认为 TRUE)

// 该文章类型是否支持多级文章(父级文章/子文章/等等.)
'hierarchical' => false,
// bool (默认为 FALSE)

// 是否为该文章类型开启存档页面 index/archive/root 页面,如果设置为 TRUE, 该文章类型名称将作为存档页面别名使用,
//当然,我们页可以设置自定义存档别名
'has_archive' => 'example',
// bool|string (默认为 FALSE)

// 为该文章类型设置 query_var 键,如果设置为 TRUE, 将使用文章类型名称,如果需要,也可以设置自定义字符串
'query_var' => 'example',
// bool|string (默认为 TRUE - 文章类型名称)

// 用于构建该文章类型的编辑、删除、阅读权限的字符串,可以设置字符串或者数组,如果单词的负数不是加“s”的形式,我们需要
//设置一个数组,array( 'box', 'boxes' )
'capability_type' => 'example',
// string|array (默认为 'post')

// 是否让 WordPress 映射权限元数据 (edit_post, read_post, delete_post),如果设置为 FALSE, 我们需要自己通过
//过滤 “map_meta_cap” 钩子来设置文章类型权限
'map_meta_cap' => true,
// bool (默认为 FALSE)

// 设置更精确的文章类型权限,WordPress 默认使用 'capability_type' 参数来构建权限,多数情况下,我们不需要像文章
//或页面这么完整的权限,下面是我经常使用的几个权限: 'manage_examples', 'edit_examples', 'create_examples'.
// 每个文章类型都是独特的,我们可以根据需要调整这些权限
'capabilities' => (

// meta caps (don't assign these to roles)
'edit_post' => 'edit_example',
'read_post' => 'read_example',
'delete_post' => 'delete_example',

// primitive/meta caps
'create_posts' => 'create_examples',

// primitive caps used outside of map_meta_cap()
'edit_posts' => 'edit_examples',
'edit_others_posts' => 'manage_examples',
'publish_posts' => 'manage_examples',
'read_private_posts' => 'read',

// primitive caps used inside of map_meta_cap()
'read' => 'read',
'delete_posts' => 'manage_examples',
'delete_private_posts' => 'manage_examples',
'delete_published_posts' => 'manage_examples',
'delete_others_posts' => 'manage_examples',
'edit_private_posts' => 'edit_examples',
'edit_published_posts' => 'edit_examples',
),

// 定义该文章类型的 URL 结构,我们可以设置一个具体的参数或一个布尔值,如果设置为 false,该文章类型将不支持
// URL Rewrite 功能
'rewrite' => (

// 文章类型的别名
'slug' => 'example', // string (默认为文章类型名称)

// 是否在固定链接中显示 $wp_rewrite->front 文章类型别名
'with_front' => false, // bool (默认为 TRUE)

// 是否允许文章类型中的文章通过 <!--nextpage--> 快捷标签实现分页
'pages' => true, // bool (默认为 TRUE)

// 是否为订阅源创建漂亮的固定链接feeds.
'feeds' => true, // bool (默认为 'has_archive' 的值)

// 为固定链接设置设置 endpoint 遮罩
'ep_mask' => EP_PERMALINK, // const (默认为 EP_PERMALINK)
),

// 文章类型支持的 WordPress 功能,许多参数在文章编辑界面非常有用。这有助于其他主题和插件决定让用户使用什么功能
//或者提供什么数据,我们可以为该参数设置一个数组,也可以设置为 false,以防止添加任何功能,文章类型创建后,我们
//可以使用 add_post_type_support() 添加功能,或使用 remove_post_type_support() 删除功能。默认功能是“标题
//”和“编辑器”。
'supports' => (
'title',// 文章标题 ($post->post_title).
'editor', // 文章内容 ($post->post_content).
'excerpt', // 文章摘要 ($post->post_excerpt).
'author', // 文章作者 ($post->post_author).
'thumbnail',// 特色图像 (当前站点使用的主题必须支持 'post-thumbnails').
'comments', // 显示评论元数据盒子,如果设置了该值, 这个文章类型将支持评论
'trackbacks', // 在编辑界面显示允许发送链接通知的元数据盒子
'custom-fields', // 显示自定义字段元数据盒子
'revisions', // 显示版本元数据盒子,如果设置了该参数,WordPress 将在数据库中保存文章版本
'page-attributes', // 显示“页面属性”元数据盒子,包含父级页面或页面排序字段。
'post-formats',// 显示文章格式元数据盒子,并允许该文章类型使用文章格式
),
// 标签用来在管理界面或前端显示该文章类型的名称,标签参数不会自动改写文章更新、错误等信息中的字段,我们需要过滤
// 'post_updated_messages' 钩子来自定义这些消息。
'labels' => (
'name' => __('Posts', 'wprs'),
'singular_name' => __('Post', 'wprs'),
'menu_name' => __('Posts', 'wprs'),
'name_admin_bar' => __('Posts', 'wprs'),
'add_new' => __('Add New', 'wprs'),
'add_new_item' => __('Add New Post', 'wprs'),
'edit_item' => __('Edit Post', 'wprs'),
'new_item' => __('New Post', 'wprs'),
'view_item' => __('View Post', 'wprs'),
'search_items' => __('Search Posts', 'wprs'),
'not_found' => __('No posts found', 'wprs'),
'not_found_in_trash' => __('No posts found in trash', 'wprs'),
'all_items' => __('All Posts', 'wprs'),
'featured_image' => __('Featured Image', 'wprs'),
'set_featured_image' => __('Set featured image', 'wprs'),
'remove_featured_image' => __('Remove featured image', 'wprs'),
'use_featured_image' => __('Use as featred image', 'wprs'),
'insert_into_item' => __('Insert into post', 'wprs'),
'uploaded_to_this_item' => __('Uploaded to this post', 'wprs'),
'views' => __('Filter posts list', 'wprs'),
'pagination' => __('Posts list navigation', 'wprs'),
'list' => __('Posts list', 'wprs'),

// 只在分级文章类型中使用的标签
'parent_item' => __('Parent Post', 'wprs'),
'parent_item_colon' => __('Parent Post:', 'wprs'),
),
);

// 注册文章类型
register_post_type(
'example', // 文章类型名称,最多 20 个字符,不支持大写或空格
$args // 文章类型的参数
);

}

post_type自定义产品模型参考:

// Register Custom Post Type
function products_post_type() {

$labels = array(
'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Products', 'text_domain' ),
'name_admin_bar' => __( 'Product', 'text_domain' ),
'archives' => __( 'Item Archives', 'text_domain' ),
'attributes' => __( 'Item Attributes', 'text_domain' ),
'parent_item_colon' => __( 'Parent Product:', 'text_domain' ),
'all_items' => __( 'All Products', 'text_domain' ),
'add_new_item' => __( 'Add New Product', 'text_domain' ),
'add_new' => __( 'New Product', 'text_domain' ),
'new_item' => __( 'New Item', 'text_domain' ),
'edit_item' => __( 'Edit Product', 'text_domain' ),
'update_item' => __( 'Update Product', 'text_domain' ),
'view_item' => __( 'View Product', 'text_domain' ),
'view_items' => __( 'View Items', 'text_domain' ),
'search_items' => __( 'Search products', 'text_domain' ),
'not_found' => __( 'No products found', 'text_domain' ),
'not_found_in_trash' => __( 'No products found in Trash', 'text_domain' ),
'featured_image' => __( 'Featured Image', 'text_domain' ),
'set_featured_image' => __( 'Set featured image', 'text_domain' ),
'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
'use_featured_image' => __( 'Use as featured image', 'text_domain' ),
'insert_into_item' => __( 'Insert into item', 'text_domain' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
'filter_items_list' => __( 'Filter items list', 'text_domain' ),
);
$args = array(
'label' => __( 'Product', 'text_domain' ),
'description' => __( 'Product information pages.', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'comments', 'custom-fields' ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type( 'product', $args );

}
add_action( 'init', 'products_post_type', 0 );

文章模型参考:

// Register Custom Post Type
function articles_post_type() {

$labels = array(
'name' => _x( 'Articles', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Article', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Articles', 'text_domain' ),
'name_admin_bar' => __( 'Article', 'text_domain' ),
'archives' => __( 'Item Archives', 'text_domain' ),
'attributes' => __( 'Item Attributes', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Items', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'new_item' => __( 'New Item', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'view_items' => __( 'View Items', 'text_domain' ),
'search_items' => __( 'Search Item', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
'featured_image' => __( 'Featured Image', 'text_domain' ),
'set_featured_image' => __( 'Set featured image', 'text_domain' ),
'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
'use_featured_image' => __( 'Use as featured image', 'text_domain' ),
'insert_into_item' => __( 'Insert into item', 'text_domain' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
'filter_items_list' => __( 'Filter items list', 'text_domain' ),
);
$args = array(
'label' => __( 'Article', 'text_domain' ),
'description' => __( 'Site articles.', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'comments', 'revisions' ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type( 'articles', $args );

}
add_action( 'init', 'articles_post_type', 0 );

添加自定义 Meta Box 需要用到 add_meta_box 函数,注册一个 Meta Box :

add_action( 'add_meta_boxes', 'movie_director' );
function movie_director() {
add_meta_box(
'movie_director',
'电影导演',
'movie_director_meta_box',
'movie',
'side',
'low'
);
}

然后在配置参数里面指定了回调函数 movie_director_meta_box,我们需要在这个函数里面创建表单:

function movie_director_meta_box($post) {
// 创建临时隐藏表单,为了安全
wp_nonce_field( 'movie_director_meta_box', 'movie_director_meta_box_nonce' );
// 获取之前存储的值
$value = get_post_meta( $post->ID, '_movie_director', true );
?>
<label for="movie_director"></label>
<input type="text" id="movie_director" name="movie_director" value="" placeholder="输入导演名称" >
<?php
}

自定义 Meta Box 数据的保存

add_action( 'save_post', 'movie_director_save_meta_box' );
function movie_director_save_meta_box($post_id){
// 安全检查
// 检查是否发送了一次性隐藏表单内容(判断是否为第三者模拟提交)
if ( ! isset( $_POST['movie_director_meta_box_nonce'] ) ) {
return;
}
// 判断隐藏表单的值与之前是否相同
if ( ! wp_verify_nonce( $_POST['movie_director_meta_box_nonce'], 'movie_director_meta_box' ) ) {
return;
}
// 判断该用户是否有权限
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
// 判断 Meta Box 是否为空
if ( ! isset( $_POST['movie_director'] ) ) {
return;
}
$movie_director = sanitize_text_field( $_POST['movie_director'] );
update_post_meta( $post_id, '_movie_director', $movie_director );
}

输出自定义 Meta Box 数据参考:

echo '导演:'.get_post_meta( get_the_ID(), '_movie_director', true );

后台列表中显示更多字段,使用 manage_$post_type_posts_custom_column 即可实现

add_action("manage_posts_custom_column", "movie_custom_columns");
add_filter("manage_edit-movie_columns", "movie_edit_columns");
function movie_custom_columns($column){
global $post;
switch ($column) {
case "movie_director":
echo get_post_meta( $post->ID, '_movie_director', true );
break;
}
}
function movie_edit_columns($columns){
$columns['movie_director'] = '导演';
return $columns;
}

即添加了列导演字段,并从每篇文章中读取出来。

 

调用自定义post_type内容模型方法,需要在主题function.php文件添加 pre_get_posts 这个 action 处理:

add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'page', 'movie' ) );
return $query;
}

在上面的 $query 变量里面设置的 post_type 数组就是要在主循环里面展示的内容,将你的自定义 Post Type 填写进去就可以在首页中显示出来了。

新建product的post_type模板archive-product.php,代码参考:

<?php $args = array( 'post_type' => 'product', 'posts_per_page' => 10);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="col-4">
<a href="<?php the_permalink(); ?>" class="item wow zoomIn"> 
<b><?php the_title(); ?></b>
</div>
</a>
</div>
<?php endwhile; ?>
<?php
the_posts_pagination( array(
'mid_size' => 2,
'prev_text' => __( 'Prev', 'textdomain' ),
'next_text' => __( 'Next', 'textdomain' ),
) );
?>

本文参考:

https://www.cnblogs.com/ytkah/p/11868158.html

https://www.cnblogs.com/ytkah/p/11926186.html

https://blog.wpjam.com/article/wordpress-post-type/

 

pdf.js报错MIME type of "application/octet-stream"的解决方法

版本:pdfjs-4.0.379-legacy-dist

原因,新版pdf.js有properties,bcmap和mjs三种格式文件,默认情况下,服务器环境不支持,需要单独配置对应的MIME类型。

解决方法:

服务器配置MIME类型。

nginx服务器如果配置文件中有

http
{
include mime.types;

就可以直接在mime.types中添加三行:

application/javascript mjs;
application/octet-stream properties;
application/octet-stream bcmap;

其它类型服务器可以参考添加。

FRP专用反代配置备份

 

http
{
......
resolver 1.1.1.1;#添加这一行,避免出现502错误
......

## FRP专用反代配置开始

server
{
listen 80;
server_name *.xxxx.net;
location / {
proxy_pass http://$host:8080;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://$host:8080;#添加这一行
expires 30d;
}

location ~ .*\.(js|css)?$
{
proxy_pass http://$host:8080;#添加这一行
expires 12h;
}
location ~ /\.
{
deny all;
}
}

server
{
listen 80;
server_name www.xxxx.net;
location / {
proxy_pass http://$host:8080;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://$host:8080;#添加这一行
expires 30d;
}

location ~ .*\.(js|css)?$
{
proxy_pass http://$host:8080;#添加这一行
expires 12h;
}
location ~ /\.
{
deny all;
}
}

server
{
listen 80;
listen 443 ssl http2;
server_name yun.xxxxx.net;
large_client_header_buffers 4 1m;

location / {
proxy_pass http://$host:8080;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
}

ssl_certificate /frps/yun.xxxx.net/fullchain.pem;
ssl_certificate_key /frps/yun.xxxx.net/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;

#SSL-END

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://$host:8080;#添加这一行
expires 30d;
}

location ~ .*\.(js|css)?$
{
proxy_pass http://$host:8080;#添加这一行
expires 12h;
}
location ~ /\.
{
deny all;
}
}

## FRP专用反代配置结束

 

 

windows版开源免费抠图工具AutoMatting

removebg免费注册 https://www.remove.bg/

免费非商业removebg用户政策:每月50次api或应用次数

客户端:

win7

AutoMatting开源地址:https://github.com/huanghaozi/AutoMatting

win10

removebg官方有win客户端:https://www.remove.bg/a/background-remover-windows-mac-linux#

AutoMatting是用Qt+OpenCV写的自动抠图的软件,使用removebg提供的api接口,可生成高清图。

removebg免费注册 https://www.remove.bg/

注册并登录后:

打开apikey管理地址:https://www.remove.bg/dashboard#api-key

创建key

复制key

这里的api key就是工具中的Token,填入即可使用。

网上搜集了一些key,可以尝试一下是否可用。

kPFsVb8ajqaeegnLRwHQg5wg
pxvvF152FPs2G47reAjdSQFv
dMvFs2L8PWTjcMjbDo6jiQDb
ggY6xY9yGE2frQAGst7M7FtS
KhJUHr65KhauFvkRrUvXEUYm
Ue1rcGF6pG1Fbnuq83a8jX6U
YJBUt3pTq9A1G22553Kpcm95
3Jh2rJSFNHk4Fg31zYAaYHnY
cn5C3F8xb628aKKX2DEQJs5q
FCcqMzi9w95p499DNifnyqtc
k6niQBfpxXsD1EfyQ8AagPRx
eSt8w3vwT41B1KSMcAZ88dbp
FPRKfddyw6QtX2GAzQHfGXzY
EQrFePowinNS5Q7TeDnRFLse
LKvvZDGYwcakJkFR6HHkf2J7
8jSsx7iWVvwy4M49CMTYNwfX
LiM4rfc1rr8FdWqikronMbdm
W2Vz6osKSR4z2o7V7qVHFJzg
6oQcwGozeFyPS7NZPiRAKdw2
1psMbURiL3nCBrnsWMhHmkN
rM6HY6KGTBgvMaddsFZyKyzg
V85sxU8zHRGRXDP4QywXPL9P
GathnexZ1kRgNqwJcNQjtDs7
yNBDnJNZackcwtwSzY6BTv2r
7vVVM7oRNBBFwibT7J3XhCCS
PLRGdWtUTmCzhrcToNg6uHJV
83H5CWXN2duVkBdMBV3Wd4B7
Zp6rRkuAz735wT4HuRQjvn2z
FbAWy11UWoyQrRTpKDhrXxmU
5jstgQbuzVYsXFcoVM2PdZxk
JydB6pE2UCjc1WzYkWUgeyMi
xjTNqneCdqR1D8c9xg4o18V5
vZWjJLvSLYuAnwaPf5ziiAnG
exhLiTGiXE45j8ShGskEb6TY

如果以上Token都不行,建议自行免费注册 https://www.remove.bg/

 

宝塔面板中修改网站名称的方法

在宝塔页面中,添加网站后,是不支持修改网站名称的。默认是创建时填写的域名。

如果要修改,需要手工处理,教程如下:

1.下载文件:/www/server/panel/data/default.db

2.使用数据库管理软件打开default.db

例如使用HediSQL打开,请选择SQLite

3.打开后找到mian数据库,打开sites表,字段name就是网站名称

修改对应name即可。

4.修改后,还需要日志和伪静态配置这些

/www/wwwlogs中的日志文件名

/www/server/panel/vhost/nginx/redirect/中的重定向文件名

/www/server/panel/vhost/rewrite/中的重写文件名

以及配置中的相关文件名。

5.结束

 

 

 

360搜索凤舞寻客留言查看方式

凤舞寻客是360搜索推广凤舞高级创意中的一种,是一个表单收集留言的形式,在展现前端会显示表单。

 

凤舞寻客可以通过样式溢价工具增加展现出价系数来提高出现机率。

 

那么,如何查看客户的留言呢?

360搜索推广跟百度推广的不同在于,百度推广有专门的模块营销通统一管理这些涉及线索的内容,而360搜索推广则需要在效果评估中的线索报告中通过筛选查看,同时仅支持6个月一周期的短信提醒。