apache 里有别名 aliases 重定向 redirecting 以及 重写 rewriting 功能,但是并不理解他们之间的联系与区别
它们分别是在什么情况下使用更合适呢
人生最曼妙的风景,竟是内心的淡定与从容!
联系与区别 ... 这话题可大可小 ... 这三个是完全不同的东西 ...
其中 alias 和 redirect 都是由 mod_alias 实现的 ... rewrite 是由 mod_rewrite 实现的 ...
mod_alias
mod_rewrite
alias 能实现的功能另外两个完全实现不了 ...
rewrite 可以实现 redirect 提供的所有功能且不仅于此 ... 当然作为代价 rewrite 的消耗也比较大 ...
使用场景的分别 ...
alias 提供的是 虚拟目录 的功能 ... 它可以把一个本无法通过 web 访问的区域映射到 web 上来 ...
alias
举例而言假如你的网站根是 /var/www ... 通过 alias 可以访问到 /home/sunyanzi/public ...
/var/www
/home/sunyanzi/public
redirect 提供的是 网页跳转 功能 ... 非常简单的从一个 URL 跳转到另外一个 URL ...
redirect
用个实际的例子举例 ... 当你访问 http://sf.gg 的时候就会跳转到 / ...
访问 http://sf.gg/bNT4C 的时候就会跳转到这个帖子 ... 这种行为都是 redirect ...
rewrite 提供的是 网页跳转 和 改变一个页面的 URL 的功能 ...
rewrite
网页跳转刚刚解释过了 ... 改变页面 URL 的意思是 ... 假如你的网站上有这样一个功能 ...
http://yoursite.ext/script?model=user&action=detail&username=Sunyanzi
你觉得这个 URL 不好看 ... 你就可以将其 rewrite 为 http://yoursite.ext/u/Sunyanzi ...
http://yoursite.ext/u/Sunyanzi
和 redirect 的不同之处是当用户访问新地址的时候 ... 浏览器地址栏里的地址不会变化 ...
rewrite 同时也提供代理功能 ...
也就是说你可以把我的网站上的一个页面比如 http://mysite.ext/somepage ...
http://mysite.ext/somepage
rewrite 到你的网站上变成 http://yoursite.ext/anotherpage ...
http://yoursite.ext/anotherpage
但前提条件是 rewrite 的目标必须也是在 web 可访问的区域上的 ...
恩恩 ... 大体就是这样 ... 有什么不明白的么 ..?
其实这些东西网上都有 ... 比我临时写的这个答案还更全面 ...
我我 ... 我就是闲的我 ... 我还手打一遍 ... 求安慰 ...
联系与区别 ... 这话题可大可小 ... 这三个是完全不同的东西 ...
其中 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://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 可访问的区域上的 ...
恩恩 ... 大体就是这样 ... 有什么不明白的么 ..?
其实这些东西网上都有 ... 比我临时写的这个答案还更全面 ...
我我 ... 我就是闲的我 ... 我还手打一遍 ... 求安慰 ...