Apache Rewrite模块提供了一系列的指令,用于实现URL的重写和重定向。以下是一些常用的指令:
- RewriteEngine On:开启URL重写功能。
- RewriteBase /:设置重写的基本路径。如果不指定,则默认为当前目录。
- RewriteRule ^old-url$ new-url [R=301,L]:将旧的URL(old-url)重定向到新的URL(new-url)。其中,301表示永久重定向,L表示这条规则是最后一条要处理的规则。
- RewriteCond %{HTTP_HOST} ^(www.)?example.com$:这是一个条件判断指令,用于检查请求的域名是否为example.com或其子域名。
- RewriteCond %{REQUEST_FILENAME} !-f:这个条件判断指令用于检查请求的文件或目录是否存在。
- RewriteCond %{REQUEST_FILENAME} !-d:这个条件判断指令用于检查请求的文件或目录是否不存在。
- RewriteRule ^(.*)$ index.php/$1 [L]:将所有请求重写到index.php文件,并保留原始的URL路径。
- RewriteCond %{REQUEST_FILENAME} !-l:这个条件判断指令用于检查请求的文件或目录是否是符号链接。
- RewriteRule ^(.*).html$ $1.php [L]:将所有以.html结尾的请求重写到对应的.php文件。
- RewriteRule ^category/(.*)$ category.php?id=$1 [L]:将所有以category/开头的请求重写到category.php文件,并将ID参数传递给该文件。
除了以上这些常用的指令外,Apache Rewrite还提供了很多其他的功能和选项,可以根据实际需求进行配置和使用。需要注意的是,在使用Apache Rewrite时,要确保已经正确安装并启用了该模块,并且要谨慎配置规则,以免导致意外的重定向或无法访问的问题。