.htaccess文件中的RewriteRule语法规则用于重写URL,格式如下:
```
RewriteRule pattern target [flags]
```
其中,pattern表示匹配的URL模式,target表示要重写的目标URL,flags表示标志位,用于指定重写规则的行为。
pattern可以是一个简单的字符串,也可以是一个正则表达式,用于匹配URL。
target可以是一个简单的URL,也可以是一个带有变量的URL,可以使用正则表达式中的捕获组来引用pattern中匹配的部分。
flags是可选的参数,用于指定重写规则的行为。常用的flags包括:
- NC:不区分大小写匹配
- L:停止解析其他的规则
- R:强制重定向,将URL改写为target指定的URL
- F:禁止访问,返回403 Forbidden错误
- G:强制在URL中添加"GET"参数
- QSA:在重写后的URL中保留查询字符串
例如,下面的规则将所有以"/page"开头的URL重写为"/index.php?page="加上实际的页面名称,并在URL中保留查询字符串:
```
RewriteRule ^page/(.*)$ /index.php?page=$1 [QSA,L]
```
这样,当用户访问"/page/about"时,实际请求的URL将是"/index.php?page=about"。