rewriterule有哪些高级用法

avatar
作者
猴君
阅读量:4

  1. RewriteCond: 使用 RewriteCond 可以添加条件,只有满足条件的请求才会被 RewriteRule 重写。例如:
RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 
  1. 捕获组:可以使用捕获组在重写规则中引用匹配到的内容。例如:
RewriteRule ^blog/(.*)$ article.php?slug=$1 [L] 
  1. 后向引用:可以在重写规则中使用后向引用来引用捕获组中的内容。例如:
RewriteRule ^category/([0-9]+)/(.*)$ archive.php?cat_id=$1&name=$2 [L] 
  1. RewriteMap:通过使用 RewriteMap 可以实现更复杂的重写规则,例如从外部文件读取重写规则。例如:
RewriteMap lc int:tolower RewriteRule ^([a-z]+)$ ${lc:$1} 
  1. 环境变量:可以通过设置环境变量来在重写规则中进行判断和操作。例如:
RewriteCond %{REMOTE_ADDR} !=127.0.0.1 RewriteRule ^(.*)$ /maintenance.html [L] 
  1. 文件系统检测:可以使用 RewriteRule 来检测文件系统中的文件或目录是否存在,并根据结果进行重写。例如:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 [L] 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!