用记事本编写好内容后,保存时,文件名要输入为 ".htaccess"
或者先将文件保存为其他名字,例如 app.htaccess。
然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),
输入 ren app.htaccess .htaccess 命令来对文件改名。
1. .htaccess最简单的地址转向设置,文件里只有下面一句话
Redirect permanent /test/soap05/test01.php http://www.baidu.com/
2. .htaccess 用到的正则表达式
元字符^(和数字6在同一个键位上的符号)和$都匹配一个位置,这和\b有点类 似 ,^匹配你要用来查找的字符串的开头 $匹配结尾。 比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。 \b代表着单词的开头或结尾,也就是单词的分界处,它只匹配一个位置。 \d是个新的元字符,匹配一位数字(0,或1,或2,或……)。 例:0\d{2}-\d{8} 匹配这样的字符串:以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字(也就是中国的电话号码。当然,这个例子只能匹配区号为3位的情形)。 \s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。 \w匹配字母或数字或下划线或汉字 \来取消字符的特殊意义。可使用\.和\*。要查找\本身,也得用\\. [ ] 匹配没有预定义元字符的字符集合,在方括号里列出它们就行了 例: [aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!) [0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w .匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 例子:\(?0\d{2}[) -]?\d{8}。 像(010)88886666,或022-22334455,02912345678等。 分析:首先是一个转义字符\(,它能出现0次或1次(?), 然后是一个0,后面跟着2个数字(\d{2}), 然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。
* 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次
3. .htaccess 语法简介
RewriteEngine ON RewriteCond %{HTTP_HOST} ^abc.com$ [OR] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ http://www.999.com/ [R=301,L] RewriteEngine on RewriteCond %{ HTTP_HOST } ^888.com RewriteRule ^(.*)$ http://888.com/hot$1 [R=301,L] RewriteCond %{ HTTP_HOST } ^www.888.com RewriteRule ^(.*)$ http://www.888.com/hot$1 [R=301,L]
RewriteCond的语法如下: RewriteCond TestString CondPattern [Flags] 其中的TestString是指一个文本格式的条件,例子中用的是环境变量名HTTP_HOST所包含的内容(Name= Value),这是一个map(键值对)格式的数据类型。 CondPattern是条件参数,这儿以第一个例子为例,就是abc.com。 Flags标识是是第三个参数,可以用来紧跟下一个条件,这儿用OR表示或者,如果没有[Flags],则用隐含的AND,表示并且。其它的还可以NC等等,表示忽略大小写
RewriteRule的语法如下: RewriteRule Pattern Substitution [Flags] 其中的Pattern就是参数,一般为一些文件的扩展名,Substitution是用来替换前面用的,这儿的Flags,常用的R表示redirect(强制重定向),F表示forbidden(禁止访问),L表示last(最后),通常当你希望停止重写操作而立即重定向时,可用它。
**防止访问者看到你的.htaccess文件,把下面几行放到你的文件中
(Files .htaccess) order allow,deny deny from all (/Files)
**防止访问者看到你的.htaccess文件,把下面一行放到你的文件中;
AddHandler cgi-script htaccess