搜索

首页  >  问答  >  正文

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

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

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

黄舟黄舟2789 天前698

全部回复(1)我来回复

  • 世界只因有你

    世界只因有你2017-05-16 17:06:34

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

    其中 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 可访问的区域上的 ...

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

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

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

    回复
    0
  • 取消回复