β

Thinkphp通用nginx重写

php和mysql数据库编码都是utf8,为什么还要set names utf8 (无论html编码还是php文件编码都是utf8)
show variables like ‘%char%’;

#第一种,未隐藏index.php 但url路径中有.html后缀

http://blog.angryfox.com/index.php/Usr/UsrInfo.html

复制代码
#第二种,隐藏脚本文件index.php

http://blog.angryfox.comUsr/UsrInfo

http://blog.angryfox.com/Usr/UsrInfo/

复制代码
#第三种,需要在访客看到的网址中隐藏掉index.php,且带.html后缀

http://blog.angryfox.com/Usr/UsrInfo.html

复制代码
那么,现在需要同时兼容上述url示例中的三种格式又出问题了。最后解决方法如下:

location / {
root /var/www;
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

mysql创建utf-8字符集数据库
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE DATABASE 的语法:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification [, create_specification] …]
create_specification:
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name

更改数据库的字符编码
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

作者:PHP/Python/C/C++/Lua/Golang/Erlang代码库
开发感悟、资料收集:我的目标LINUX内核架构
原文地址:Thinkphp通用nginx重写, 感谢原作者分享。

发表评论