conf文件找到localtion设置
location ~ 1.php(/|$) {
因为不支持pathinfo,要把配置改为:
location ~ ..php(/.)*$ {
在location加入
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
reboot Nginx service。
- / ↩
Typecho默认是不支持emoji的,这也是因为编码的问题。这时,只需要将数据库的编码utf8修改为utf8mb4就好了。还有一点,utf8mb4编码只有在MySQL5.5.3以后才支持的。
如果你的博客还没搭好的话,也可以在创建数据库时排序规则使用utf8mb4,这样就可以跳过第一个步骤。
1.修改数据库编码
进入PhpMyAdmin,选择你安装Typecho的数据库。菜单栏里进入操作,找到“排序规则”,选择utf8mb4_unicode_ci。
2.修改表的编码
在菜单栏里进入SQL,执行以下语句。
alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;
3.修改Typecho配置文件
在网站根目录里找到“config.inc.php”,找到这一段代码。
$db->addServer(array (
'host' => localhost,
'user' => 'youruser',
'password' => 'yourpassword',
'charset' => 'utf8mb4', //修改这一行
'port' => 3306,
'database' => 'yourdatabase'
), Typecho_Db::READ | Typecho_Db::WRITE);
<p> wp-content目录新建tmp文件夹,设置文件夹的权限为777。</p>
<p> 在wp-config.php中添加下列代码: </p>
<p>
if ( !defined('ABSPATH') )</p>
<p>
define('ABSPATH', dirname(__FILE__) . '/');</p>
<p>
define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');</p>
<p>
define("FS_METHOD", "direct"); </p>
<p>
define("FS_CHMOD_DIR", 0777); </p>
<p>
define("FS_CHMOD_FILE", 0777); </p>
备份好Nginx。
防止文件被下载:
location ~ \.(zip|rar|sql|bak|gz|7z)$ {
return 444;
}
屏蔽非常见蜘蛛爬虫:
if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) {
return 444;
}
禁止目录执行脚本:
#uploads|templets|data 这些目录禁止执行PHP
location ~* ^/(uploads|templets|data)/.*.(php|php5)$ {
return 444;
}
屏蔽IP:
屏蔽1.1..这个IP
deny 1.1.1.1;
屏蔽192.168.1.* 这个段
denu 192.168.1.0/24;
PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本。
在 _h5ai/public/index.php 最下面增加以下代码:
function mima(){
$user=array('nonni','nonni');
if(!($user[0]===$_SERVER['PHP_AUTH_USER'] && $user[1]===$_SERVER['PHP_AUTH_PW'])){
header('WWW-Authenticate: Basic realm="nonni"');
header('HTTP/1.0 401 Unauthorized');
die("please login");
}
}
在第二行 <?php 的下面插入以下代码:
mima();
OK了。