月度归档:2016年04月

Nginx从http跳转到https的方法

前些天把整个网站都安装了SSL证书,但是http依旧是默认进行访问的,感觉装了证书很没用,决定开启强制HTTPS访问。既:把http请求跳转到https上面。

我未成功的方法:

  1. 添加rewrite命令 : rewrite ^/(.*)$ http://domain.com/$1 permanent;
  1. 通过meta标签 “

我使用的方法: (http://www.v2ex.com/t/158013 作者:Keyes 感谢)

用error 497來做跳轉

首先

listen 80;

listen 443;

然後配置497頁面

error_page 497 https://$host$request_uri;

最後使http來路的請求轉換到https(加入到主機定義行的最後位置):

if ($server_port = 80) {

return 497;

}

我使用1.2方法浏览器提示我多重301定向了,貌似那两种判断方式只是判断域名,不对域名前面的协议进行判断,所以造成了http://qwe.com和https://qwe.com被认为成同一个域名,使得跳转循环了,报310错误

另外:

刚开始使用typecho,你妹的他的编辑器直接可以执行HTML代码,立即执行!!我在打上面那个meta跳转的时候直接给我跳转过去了。。之后每次点开这个草稿都自动跳过去。。。还好我手速快在它跳转之前删了个meta的括号。。。长记性了

Typecho主题Belog制作中,即将发布

推迟发布,期中考试……….

不多说,直接看预览:

主题首页

文章页面

功能:

自从WP挂掉之后,一直不喜欢Typecho的默认主题(一下简称TC),感觉字体和风格都不是自己喜欢的样式。于是就有了自己做主题的想法,看了官方文档后,发现TC的主题制作非常简单,基本就是套模板。于是在W3layouts上找了一个喜欢的HTML设计,修修补补做个自己的主题吧。

主题以极简为设计优化理念,尽量在稳定的基础上提高效率。博客嘛,不需要什么复杂的效果,简简单单内容好就好。配色方案可能会因为我的简历页面而改变,不过后续可能会加入配色修改的控制面板。

Javascript笔记(七)–Location Navigator screen 对象

Location对象

location用于获取或设置窗体的URL,并且可以用于解析URL。

语法:

location.[属性|方法]

location对象属性图示:

location 对象属性:

location 对象方法:

Navigator对象

Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。

对象属性:

查看浏览器的名称和版本,代码如下:

screen对象

screen对象用于获取用户的屏幕信息。

语法:

window.screen.属性

对象属性:

Javascript笔记(六)–History 对象 [重点]

History 对象

history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。

注意:从窗口被打开的那一刻开始记录,每个浏览器窗口、每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联。

语法:

window.history.[属性|方法]

注意:window可以省略。

History 对象属性

History 对象方法

使用length属性,当前窗口的浏览历史总长度,代码如下:

返回前一个浏览的页面

back()方法,加载 history 列表中的前一个 URL。

语法:

window.history.back();

比如,返回前一个浏览的页面,代码如下:

window.history.back();

注意:等同于点击浏览器的倒退按钮。

back()相当于go(-1),代码如下:

window.history.go(-1);

Javascript笔记(五)–window 对象 [重点]

window对象

window对象是BOM的核心,window对象指当前的浏览器窗口。

window对象方法:

计时器setInterval()

语法:

setInterval(代码,交互时间);

参数说明:

  1. 代码:要调用的函数或要执行的代码串。
  2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。

返回值:

一个可以传递给 clearInterval() 从而取消对”代码”的周期性执行的值。

调用函数格式(假设有一个clock()函数):

setInterval(“clock()”,1000)

setInterval(clock,1000)

我们设置一个计时器,每隔100毫秒调用clock()函数,并将时间显示出来,代码如下:

取消计时器clearInterval()

clearInterval() 方法可取消由 setInterval() 设置的交互时间。

语法:

clearInterval(id_of_setInterval)

参数说明:

id_of_setInterval:由 setInterval() 返回的 ID 值。

每隔 100 毫秒调用 clock() 函数,并显示时间。当点击按钮时,停止时间,代码如下:

<form><input id="clock" size="50" type="text"> <input type="button" value="Stop"></form>

计时器setTimeout()

setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。

语法:

setTimeout(代码,延迟时间);

参数说明:

  1. 要调用的函数或要执行的代码串。
  2. 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。

取消计时器clearTimeout()

setTimeout()和clearTimeout()一起使用,停止计时器。

语法:

clearTimeout(id_of_setTimeout)

参数说明:

id_of_setTimeout:由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。

Javascript笔记(四)–Array 数组对象

数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的

数组定义的方法:

  1. 定义了一个空数组:

var  数组名= new Array();

  1. 定义时指定有n个空元素的数组:

var 数组名 =new Array(n);

3.定义数组的时候,直接初始化数据:

var  数组名 = [<元素1>, <元素2>, <元素3>…];

我们定义myArray数组,并赋值,代码如下:

var myArray = [2, 8, 6];

说明:定义了一个数组 myArray,里边的元素是:myArray[

数组元素使用:

数组名[下标] = 值;

注意: 数组的下标用方括号括起来,从0开始。

数组属性:

length 用法:<数组对象>.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。

数组方法:

例子代码如下:

Javascript笔记(三)–Math对象

Math对象,提供对数据的数学计算。

使用 Math 的属性和方法,代码如下:

运行结果:

3.141592653589793

15

注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。

Math 对象属性

Math 对象方法

以向上取整ceil()为例:

ceil() 方法可对一个数进行向上取整。

语法:

Math.ceil(x)

参数说明:

注意:它返回的是大于或等于x,并且与x最接近的整数。

我们将把 ceil() 方法运用到不同的数字上,代码如下:

运行结果:

1

7

5

4

-5

-5

Javascript笔记(二)–String 字符串对象

定义字符串的方法就是直接赋值。比如:

var mystr = “I love JavaScript!”

定义mystr字符串后,我们就可以访问它的属性和方法。

访问字符串对象的属性length:

stringObject.length; 返回该字符串的长度。

var mystr=”Hello World!”;

var myl=mystr.length;

以上代码执行后,myl 的值将是:12

访问字符串对象的方法:

使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写:

var mystr=”Hello world!”;

var mynum=mystr.toUpperCase();

以上代码执行后,mynum 的值是:HELLO WORLD!

注: toLowerCase() 转化为小写

返回指定位置的字符

charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。

语法:

stringObject.charAt(index)

参数说明:

注意:1.字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)。

2.如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。

如:在字符串 “I love JavaScript!” 中,返回位置2的字符:

注意:一个空格也算一个字符。

以上代码的运行结果:

l

返回指定的字符串首次出现的位置

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(substring, startpos)

参数说明:

说明:

1.该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 substring。

2.可选参数,从stringObject的startpos位置开始查找substring,如果没有此参数将从stringObject的开始位置查找。

3.如果找到一个 substring,则返回 substring 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

注意:1.indexOf() 方法区分大小写。

2.如果要检索的字符串值没有出现,则该方法返回 -1。

例如: 对 “I love JavaScript!” 字符串内进行不同的检索:

以上代码的输出:

字符串分割split()

知识讲解:

split() 方法将字符串分割为字符串数组,并返回此数组。

语法:

stringObject.split(separator,limit)

参数说明:

提取字符串substring()

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

语法:

stringObject.substring(starPos,stopPos)

参数说明:

提取指定数目的字符substr()

substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。

语法:

stringObject.substr(startPos,length)

参数说明:

大部分摘自慕课网,发在这里方便自己查询

Javascript笔记(一)– Date 日期对象

日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。

定义一个时间对象 :

var Udate=new Date();

注意:使用关键字new,Date()的首字母必须大写。

使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。

如果要自定义初始值,可以用以下方法:

var d = new Date(2012, 10, 1); //2012年10月1日

var d = new Date(‘Oct 1, 2012’); //2012年10月1日

我们最好使用下面介绍的“方法”来严格定义时间。

访问方法语法:“<日期对象>.<方法>”

Date对象中处理时间和日期的常用方法:

以第一个为例:

获得年份