扫码关注官方订阅号
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 可访问的区域上的 ...
恩恩 ... 大体就是这样 ... 有什么不明白的么 ..?
其实这些东西网上都有 ... 比我临时写的这个答案还更全面 ...
我我 ... 我就是闲的我 ... 我还手打一遍 ... 求安慰 ...
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
联系与区别 ... 这话题可大可小 ... 这三个是完全不同的东西 ...
其中 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 可访问的区域上的 ...
恩恩 ... 大体就是这样 ... 有什么不明白的么 ..?
其实这些东西网上都有 ... 比我临时写的这个答案还更全面 ...
我我 ... 我就是闲的我 ... 我还手打一遍 ... 求安慰 ...