首頁  >  問答  >  主體

apache 的 aliases,redirecting,rewriting 都有什麼不同?

apache 裡有別名 aliases 重定向 redirecting 以及 重寫 rewriting 功能,但並不理解他們之間的聯繫與區別

它們分別是在什麼情況下使用比較合適呢

黄舟黄舟2713 天前620

全部回覆(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
  • 取消回覆