rewrite例子集合

在 httpd 中將一個域名轉發到另一個域名 
虛擬主機世界近期更換了域名,新域名爲 www.wbhw.com, 更加簡短好記。這時需要將原來的域名 webhosting-world.com, 以及論壇所在地址 webhosting-world.com/forums/ 定向到新的域名,以便用戶可以找到,並且使原來的論壇 URL 繼續有效而不出現 404 未找到,比如原來的 http://www. webhosting-world.com/forums/-f60.html, 讓它在新的域名下繼續有效,點擊後轉發到 http://bbs.wbhw.com/-f60.html, 這就需要用 apache 的 Mod_rewrite 功能來實現。 

在< virtualhost> 中添加下面的重定向規則: 

RewriteEngine On 
# Redirect webhosting-world.com/forums to bbs.wbhw.com 
RewriteCond %{REQUEST_URI} ^/forums/ 
RewriteRule /forums/(.*) http://bbs.wbhw.com/$1 [R=permanent,L] 

# Redirect webhosting-world.com to wbhw.com 
RewriteCond %{REQUEST_URI} !^/forums/ 
RewriteRule /(.*) http://www.wbhw.com/$1 [R=permanent,L] 

添加了上面的規則以後, 裏的全部內容如下: 
< virtualhost *:80> 
ServerAlias webhosting-world.com 
ServerAdmin [email protected] 
DocumentRoot /path/to/webhosting-world/root 
ServerName www.webhosting-world.com 

RewriteEngine On 
# Redirect webhosting-world.com/forums to bbs.wbhw.com 
RewriteCond %{REQUEST_URI} ^/forums/ 
RewriteRule /forums/(.*) http://bbs.wbhw.com/$1 [R=permanent,L] 

# Redirect webhosting-world.com to wbhw.com 
RewriteCond %{REQUEST_URI} !^/forums/ 
RewriteRule /(.*) http://www.wbhw.com/$1 [R=permanent,L] 
< /virtualhost>
 



URL重定向例子一: 
1.http://www.zzz.com/xxx.php-http://www.zzz.com/xxx/ 
2.http://yyy.zzz.com-http://www.zzz.com/user.php?username=yyy 的功能 

RewriteEngine   On 
RewriteCond   %{HTTP_HOST}   ^www.zzz.com 
RewriteCond   %{REQUEST_URI}   !^user\.php$ 
RewriteCond   %{REQUEST_URI}   \.php$ 
RewriteRule   (.*)\.php$   http://www.zzz.com/$1/   [R] 

RewriteCond   %{HTTP_HOST}   !^www.zzz.com 
RewriteRule   ^(.+)   %{HTTP_HOST}   [C] 
RewriteRule   ^([^\.]+)\.zzz\.com   http://www.zzz.com/user.php?username=$1 


例子二: 
/type.php?typeid=* --> /type*.html 
/type.php?typeid=*&page=* --> /type*page*.html 

RewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1   [PT] 
RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&page=$2   [PT]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章