首页 > apache 的 aliases,redirecting,rewriting 都有什么区别?

apache 的 aliases,redirecting,rewriting 都有什么区别?

apache 里有别名 aliases 重定向 redirecting 以及 重写 rewriting 功能,但是并不理解他们之间的联系与区别

它们分别是在什么情况下使用更合适呢


联系与区别 ... 这话题可大可小 ... 这三个是完全不同的东西 ...

其中 alias 和 redirect 都是由 mod_alias 实现的 ... rewrite 是由 mod_rewrite 实现的 ...

alias 能实现的功能另外两个完全实现不了 ...

rewrite 可以实现 redirect 提供的所有功能且不仅于此 ... 当然作为代价 rewrite 的消耗也比较大 ...

使用场景的分别 ...

alias 提供的是 虚拟目录 的功能 ... 它可以把一个本无法通过 web 访问的区域映射到 web 上来 ...

举例而言假如你的网站根是 /var/www ... 通过 alias 可以访问到 /home/sunyanzi/public ...

redirect 提供的是 网页跳转 功能 ... 非常简单的从一个 URL 跳转到另外一个 URL ...

用个实际的例子举例 ... 当你访问 http://sf.gg 的时候就会跳转到 http://.com/ ...

访问 http://sf.gg/bNT4C 的时候就会跳转到这个帖子 ... 这种行为都是 redirect ...

rewrite 提供的是 网页跳转改变一个页面的 URL 的功能 ...

网页跳转刚刚解释过了 ... 改变页面 URL 的意思是 ... 假如你的网站上有这样一个功能 ...

http://yoursite.ext/script?model=user&action=detail&username=Sunyanzi

你觉得这个 URL 不好看 ... 你就可以将其 rewrite 为 http://yoursite.ext/u/Sunyanzi ...

和 redirect 的不同之处是当用户访问新地址的时候 ... 浏览器地址栏里的地址不会变化 ...

rewrite 同时也提供代理功能 ...

也就是说你可以把我的网站上的一个页面比如 http://mysite.ext/somepage ...

rewrite 到你的网站上变成 http://yoursite.ext/anotherpage ...

但前提条件是 rewrite 的目标必须也是在 web 可访问的区域上的 ...

恩恩 ... 大体就是这样 ... 有什么不明白的么 ..?

其实这些东西网上都有 ... 比我临时写的这个答案还更全面 ...

我我 ... 我就是闲的我 ... 我还手打一遍 ... 求安慰 ...

【热门文章】
【热门文章】