nginx下的rewrite

nginx下的rewrite
wordpress下的使用

1
2
3
if (!-f $request_filename){
	rewrite (.*) /index.php;
}

我本机的完整写法为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
        listen       80;
        charset utf8;
        server_name shiroko.cn www.shiroko.cn blog.shiroko.cn;
        root   /data/web/shiroko/www/blog;
        index  index.html index.htm index.php;
        location ~ \.php$ {
                include php/enable_php5.conf;
        }
        location / {
                if (-f $request_filename/index.html){
                        rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename/index.php){
                        rewrite (.*) $1/index.php;
                }
                if (!-f $request_filename){
                        rewrite (.*) /index.php;
                }
        }
}

discuzX2下的使用

1
2
3
4
5
6
7
8
9
10
11
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
if (!-e $request_filename) {
        return 404;
}

nginx设置网站密码访问

有的时候想设置一些私密的浏览部分
比如要对 网站目录下的 www 文件夹 进行加密认证
那么 在 nginx.conf 文件中对应的 server 段中 添加引用:

1
2
3
4
location ^~ /www/ {
	auth_basic " 输入网站信息";
	auth_basic_user_file /root/htpasswd;
}

再创建一个htpasswd文件
此文件的书写格式是
用户名:密码
每行一个账户
并且 密码必须使用函数 crypt(3) 加密

官方档说 可以用 Apache 的 htpasswd 工具来创建密码文件
比如我们设置一个帐号为minamoto,密码为shiroko的htpasswd,文件为pwd

1
 [root@shiroko.cn]/usr/local/httpd/bin/htpasswd -bdc pwd minamoto shiroko

当然也可以使用perl 创建密码文件 新建 一个 pw.pl 文件 其内容
建立一个脚本

1
[root@shiroko.cn]vi pw.pl

脚本内填写

1
2
3
4
#!/usr/bin/perl
use strict;
my $pw=$ARGV[0];
print crypt($pw,$pw)."\n";

然后设置下执行权限,就可使用了

1
2
3
[root@shiroko.cn]chmod +x pw.pl
[root@shiroko.cn]./pw.pl shiroko
shedNjPenV9SI

“shedNjPenV9SI”就是“shiroko”的crypt()密码
然后 将上面用 perl 生成的 加密后的密码
按照
用户名:密码
的格式写到 htpasswd 文件中

1
minamoto:shedNjPenV9SI

这样既完成了设置

如果 不用
^~ /www/
而用
/www
的话 那么 将只能对目录进行验证 直接访问其下的文件 将不会弹出登录验证

htpasswd 这个文件的名字可以 自己随意设置
用户名 也是 自己随意设置 无需加密
密码必须使用函数 crypt(3) 加密

【转贴】linux的vim

vi 簡易說明

要管理好 Linux 系統﹐少不了要對設定檔案進行編輯,如果您用慣了 Microsoft Word 或 Corel Wordperfect 的話,除了 Xwindows 裡面的編輯程式(如 xemacs )用起來尚可應付外,於 Linux 的文字模式下,會覺得檔案編輯程式都沒有 Windows 程式那麼方便。雖然 Linux 下面也有好多種文書編輯器,例如﹕ed、vi、pico、joe、emacs等。以下我們以最常見到的 vi 這套文書軟體來介紹 Linux 底下的文書編輯動作。

基本上 vi 共分為兩種模式,一種是『編輯模式』,一種被稱為『命令模式』,其中,在命令模式中尚包含『命令列模式』的情況。『編輯』與『命令』這兩種模式的切換動作是以 『Esc』來達成的。通常,檔案一開啟或者新建檔時,會成為命令模式,如果要在檔案中輸入字元,就必需以小寫的 i 來進入編輯模式,進入編輯模式後你輸入的咚咚才會顯示出來!那由『編輯模式』要變成『命令模式』時,就直接按『Esc』即可。而若要進入『命令列模式』時,就必須要在命令模式中輸入『:』(冒號),那游標就會跑到螢幕的最下面一行來等待你輸入啦!

Continue reading

AJAX应用在IE浏览器中报错c00ce56e

相信大家都有碰到过IE浏览器在AJAX应用中,会因为客户端与服务端的编码不一致而导致一个错误:“由于出现错误 c00ce56e 而导致此项操作无法完成。”而在其他非IE浏览器上测试都没有问题。看来IE浏览器在读取编码的时候比其他浏览器要严格很多。

然而很多时候,编码不一致的问题我们都能提前意识到,因为这样的问题可能曾经无数次困扰过我们了。即便是事后补救,我们也能迅速定位到问题,并很快解决。恰恰是一些小错误让我们痛不欲生,因为这些小错误极其隐蔽,它在我们固有的思维中又很难去发觉他们。

只要设置下编码就可以了,比如

1
header('Content-type: text/html; charset=utf-8');

Linux Shell脚本编程基础

本文作者:Leal
发现好多网上版本都支离破碎了我这次做了一定的编辑

我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):

1
2
# !/bin/sh

注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似。
符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。编辑结束并保存后,如果要执行该脚本,必须先使其可执行:

1
chmod +x filename

此后在该脚本所在目录下,输入 ./filename 即可执行该脚本。

目录

Continue reading