WEB开发网
开发学院服务器WEB服务器Apache Apache的ReWrite的应用 阅读

Apache的ReWrite的应用

 2008-10-23 00:00:00 来源:WEB开发网   
核心提示:Apache的mod_rewrite是提供了强大URL操作的杀手级的模块,可以实现几乎所有你梦想的URL操作类型,Apache的ReWrite的应用,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,有/e/www/(WWW的主页)、/e/sww/ (Intranet的主页)等

Apache的mod_rewrite是提供了强大URL操作的杀手级的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,即使是Apache专家有时也会发掘出mod_rewrite的新用途。

换句话说:对mod_rewrite,或者是打退堂鼓永不再用,或者是喜欢它并一生受用。

ReWrite可以应用在以下方面或者解决以下问题:

URL的规划

规范的URL

说明:

在有些网站服务器上,一个资源会拥有多个URL,在实际应用和发布中应该被使用的是规范的URL,其他的则是简写或者是内部使用的。无论用户在请求中使用什么形式的URL,他最终看见的都应该是规范的URL。

方案:

对所有的不规范的URL执行一个外部的HTTP重定向,以改变它在浏览器地址栏中的显示及其后继的请求。下例中的规则集用规范的/u/user替换/~user,并修正了/u/user所遗漏的后缀的斜杠。

代码:

RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]

RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]

规范的主机名

说明:

...

方案:

代码:

RewriteCond %{HTTP_HOST} !^fully.qualified.domain.name [NC]

RewriteCond %{HTTP_HOST} !^$

RewriteCond %{SERVER_PORT} !^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]

被移动过的DocumentRoot

说明:

通常,网站服务器的DocumentRoot直接对应于URL"/",但是,它常常不是处于最高一级,而可能只是众多数据池中的一个实体。比如,在Intranet站点中,有/e/www/(WWW的主页)、/e/sww/ (Intranet的主页)等等,而DocumentRoot指向了/e/www/,则必须保证此数据池中的所有内嵌的图片和其他元素对后继请求有效。

1 2 3 4 5 6  下一页

Tags:Apache ReWrite 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接