.htaccess 语法

在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。

用记事本编写好内容后,保存时,文件名要输入为 ".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

你可能感兴趣的:(.htaccess 语法)