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 可訪問的區域上的 ...
恩恩 ... 大體就是這樣 ... 有什麼不明白的麼 ..?
其實這些東西網上都有 ... 比我臨時寫的這個答案還更全面 ...
我我 ... 我就是閒的我 ... 我還手打一遍 ... 求安慰 ...