Apache的Mod_rewrite使用详解

2009-05-13 05:31:51来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

今天主要列出一些例子。由于有些例子是针对特殊路径或特别情况的,列出供大家在思路上参考。因为它们就是些例子。
目标
重写设置
说明
规范化URL
RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]
将/~user重写为/u/user的形式
?
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]
将/u/user末尾漏掉的/补上
?
?
?
规范化HostName
RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
域名不合格
?
RewriteCond %{HTTP_HOST} !^$
不空
?
RewriteCond %{SERVER_PORT} !^80$
不是80端口
?
RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
重写
?
RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
?
?
RewriteCond %{HTTP_HOST} !^$
?
?
RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]
?
?
?
?
URL根目录转移
RewriteEngine on
?
?
RewriteRule ^/$ /e/www/ [R]
从/移到/e/www/
?
?
?
末尾目录补斜线
RewriteEngine on
?
(目录范围内)
RewriteBase /~quux/
?
?
RewriteRule ^foo$ foo/ [R]
/~quux/foo是一个目录,补/
?
?
?
?
RewriteEngine on
?
?
RewriteBase /~quux/
?
?
RewriteCond %{REQUEST_FILENAME} -d
如果请文件名是个目录
?
RewriteRule ^(.+[^/])$ $1/ [R]
URL末尾不是斜线时补上
?
?
?
Web集群
RewriteEngine on
?
?
RewriteMap user-to-host txt:/path/to/map.user-to-host
用户-服务器映射
?
RewriteMap group-to-host txt:/path/to/map.group-to-host
组-服务器映射
?
RewriteMap entity-to-host txt:/path/to/map.entity-to-host
实体-服务器映射
?
RewriteRule ^/u/([^/]+)/?(.*) http://${user-to-host:$1|server0}/u/$1/$2
用户均衡
?
RewriteRule ^/g/([^/]+)/?(.*) http://${group-to-host:$1|server0}/g/$1/$2
组均衡
?
RewriteRule ^/e/([^/]+)/?(.*) http://${entity-to-host:$1|server0}/e/$1/$2
实体均衡
?
RewriteRule ^/([uge])/([^/]+)/?$ /$1/$2/.www/
?
?
RewriteRule ^/([uge])/([^/]+)/([^.]+.+) /$1/$2/.www/$3\
?
?
?
?
URL根目录搬迁
RewriteEngine on
?
?
RewriteRule ^/~(.+) http://newserver/~$1 [R,L]
到其它服务器
?
?
?
所用户名首字母分
RewriteEngine on
?
?
RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/.www$3
内一层括号为$2
?
?
?
NCSA imagemap移
RewriteEngine on
?
植为mod_imap
RewriteRule ^/cgi-bin/imagemap(.*) $1 [PT]
?
?
?
?
多目录查找资源
RewriteEngine on
?
?
# first try to find it in custom/…
?
?
RewriteCond /your/docroot/dir1/%{REQUEST_FILENAME} -f
?
?
RewriteRule ^(.+) /your/docroot/dir1/$1 [L]
?
?

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于 apache url rewrite 的问题

下一篇:Apache 重写规则的常见应用 (rewrite)