httpd路徑映射和重定向

来源:http://www.cnblogs.com/f-ck-need-u/archive/2017/10/07/7634381.html
-Advertisement-
Play Games

主要包括Alias指令、AliasMatch、Redirect、RedirectMatch、ScriptAlias和ScriptAliasMatch。它們由mod_alias模塊提供,該模塊用於提供簡單的路徑映射和重定向需求,更複雜的內容見URL重寫。 其中ScriptAlias用法和Alias完全 ...


主要包括Alias指令、AliasMatch、Redirect、RedirectMatch、ScriptAlias和ScriptAliasMatch。它們由mod_alias模塊提供,該模塊用於提供簡單的路徑映射和重定向需求,更複雜的內容見URL重寫

其中ScriptAlias用法和Alias完全一樣,唯一不同的是ScriptAlias映射的目標路徑被認為是CGI文件或包含CGI文件的目錄,它們將會被cgi處理器處理執行。

1.1 處理順序

Redirect、RedirectMatch指令優先於Alias、AliasMatch進行處理;同類型的Redirect或Alias按照出現順序進行匹配,匹配到了立即停止。

例如:如果幾個指令按照下麵的順序出現:

Redirect1
Alias1
AliasMatch2
Alias3
RedirectMatch2
Redirect3

那麼它們匹配的順序為:Redirect1>RedirectMatch2>Redirect3>Alias1>AliasMatch2>Alias3。且一被匹配立即生效,後面的將被忽略。

1.2 Alias和AliasMatch

Alias指令用於將URL路徑映射到本地文件系統的路徑,且本地路徑不受DocumentRoot的限制。AliasMatch是正則版本的Alias。

Alias "/image" "/ftp/pub/image"

這將使得 http://myserver/image/foo.gif 的請求得到/ftp/pub/image/foo.gif,由於是精確匹配的,所以 http://myserver/imagefoo.gif 不會返回該路徑下的文件。但Alias有支持正則匹配的指令AliasMatch。

AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"

Alias中如果URL部分包含了尾隨斜線,則映射路徑也應該包含斜線。例如下麵的例子,這時如果請求 http://myserver/icons ,將不會得到/usr/local/apache/icons/$DirectoryIndex。

Alias "/icons/" "/usr/local/apache/icons/"

設置了Alias後,需要考慮映射到的本地路徑的許可權是否放行。特別是對於DocumentRoot外的路徑,通常會因為< Directory "/">的拒絕而導致這些映射目標不能訪問。所以,對於這樣的映射路徑應該還需要為Alias指令配一個< Directory >容器放行。例如:

Alias "/image" "/ftp/pub/image"
<Directory "/ftp/pub/image">
    Require all granted
</Directory>

如果Alias或AliasMatch出現在< Location >容器中,則它們只需要一個映射路徑作為參數即可,因為URL已經包含在容器路徑中。例如:

<Location "/image">
    Alias "/ftp/pub/image"
</Location>

1.3 Redirect和RedirectMatch指令

它們告知客戶端資源已經轉移,讓它們重新發送對新路徑資源的HTTP請求。

Redirect [status] old-URL new-URL

舊的URL必須是以斜線"/"開頭的絕對路徑,新URL也必須是絕對路徑,但可以是包含了scheme://serverhost的絕對路徑,也可以是使用斜線開頭的絕對路徑。例如:

# 重定向到不同主機上
Redirect "/service" "http://foo2.example.com/service"

# 重定向到相同主機上
Redirect "/one" "/two"

如果客戶端請求 http://example.com/service/foo.txt ,將被告知重新去請求 http://foo2.example.com/service/foo.txt 。可以是包含GET參數的URL,例如 http://example.com/service/foo.pl?q=23&a=42 ,將重定向到 http://foo2.example.com/service/foo.pl?q=23&a=42 。但註意,POST方法會被無視。

如果沒有指定status參數,則重定向是臨時重定向(HTTP status 302)。對客戶端來說,此資源的路徑變動是臨時性的。以下幾個status參數可以返回各自不同的HTTP狀態碼:

  • permanent:返回一個永久性重定向狀態碼(301),表示此資源的位置變動是永久性的。
  • temp:返回一個臨時性重定向狀態碼(302),這是預設值。
  • seeother:返回一個"參見"狀態碼(303),表示此資源已經被替代。
  • gone:返回一個"已廢棄"狀態碼(410),表示此資源已經被永久性地刪除了。如果指定了這個狀態碼,則new-URL參數將被忽略。

status可以被指定為某個數值以返回其他指定狀態碼。如果此值在300-399之間,則必須提供new-URL參數,否則必須忽略new-URL,但不管如何,值必須是有效的http狀態碼值。

和alias指令一樣,如果寫在Location容器中,則old-URL忽略,因為它已經包含在location容器的路徑中。例如:

<Location "/one">
    Redirect permanent "http://example.com/two"
</Location>
<Location "/three">
    Redirect 303 "http://example.com/other"
</Location>
<LocationMatch "/error/(?<NUMBER>[0-9]+)">
    Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
</LocationMatch>

回到Linux系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

回到網站架構系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7576137.html

回到資料庫系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7586194.html

轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/7634381.html

註:若您覺得這篇文章還不錯請點擊右下角推薦,您的支持能激發作者更大的寫作熱情,非常感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前面的話 本文將詳細介紹如何下Linux環境下安裝NodeJS和mongoDB NodeJS 1、在官網下載Linux環境下的NodeJS安裝包 2、通過xftp軟體將安裝包上傳到伺服器 3、解壓縮.tar.xz尾碼的安裝包 4、解壓後,當前目錄下出現node-v8.6.0-linux-x64目錄, ...
  • Tips 原文作者:Víctor López Ferrando 原文地址: "30 interesting commands for the Linux shell" 這些是我收集了多年的Linux shell的30個有趣的命令和提示。 1. 監控命令(每2秒運行一次) 2. 使用一個埠殺死程式 ...
  • 1. 運行環境: OS:CentOS 7.3 / Python: 2.7.3/ Pip: 9.0.1 / Zabbix:3.2.8 / Redis:微軟雲Redis 3.2.7 Zabbix官方提供的監控模板。 項目地址:https://github.com/blacked/zbx_redis_te ...
  • [1]分類 [2]RPM [3]RPM安裝 [4]查詢與校驗 [5]YUM [6]源碼包安裝 [7]腳本安裝 [8]Nodejs安裝 ...
  • 1. Graylog2 簡介 Graylog 是一個簡單易用、功能較全面的日誌管理工具,相比 ELK 組合, 優點: 部署維護簡單,一體化解決方案,不像ELK三個獨立系統集成。 查相比ES json語法,搜索語法更加簡單,如 source:mongo AND reponse_time_ms:>500 ...
  • 教研室新進機器人,組內成員需要對其做一下必要的瞭解。手冊純英文內容多,這裡挑重點介紹幾條: 感測器: 作為輸入設備,Tiago對周圍環境感知完全通過各種感測器實現。配備的感測器有以下幾種: 1,激光測距儀:0.05-10m 15Hz 2,聲吶:0.03-1m 40kHz 3,慣性測量感測器:MPU ...
  • 本文目錄:1.1 錯誤日誌ErrorLog1.2 訪問日誌CustomLog1.3 日誌輪替:rotatelogs工具1.4 日誌輪替:cronolog工具1.5 rotatelogs和cronolog的比較 需要記錄的日誌類型有:錯誤日誌ErrorLog、訪問日誌CustomLog。錯誤日誌一般採 ...
  • 我們將ASP.NET程式從IIS6移植到IIS7,可能運行提示以下錯誤: HTTP 錯誤 500.23 - Internal Server Error 檢測到在集成的托管管道模式下不適用的 ASP.NET 設置。 為什麼會出現以上錯誤? 在IIS7的應用程式池有兩種模式,一種是“集成模式”,一種是“ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...