Nginx
Nginx 從請求 URI 中提取頂級目錄名稱
我需要能夠使用來自的頂級目錄
$request_uri
,例如:
/dir/sub/slug
->/dir
我讀了這個問題的答案: How to extract Only the file name from the request uri
# Gets the basename of the original request map $request_uri $request_basename { ~/(?<captured_request_basename>[^/?]*)(?:\?|$) $captured_request_basename; } # Gets the basename of the current uri map $uri $basename { ~/(?<captured_basename>[^/]*)$ $captured_basename; }
它似乎與我需要的很接近,它是如何工作的?是否可以修改以獲取頂級目錄?謝謝!
我認為這樣的事情應該可以解決問題。
在我的範例中,為了測試返回的內容,我將變數添加
$topdir
到標題中。map $request_uri $topdir { ~(?<captured_topdir>^/[a-zA-Z0-9]+[/]) $captured_topdir; } server { listen 80; root /var/www; index index.html; location / { add_header X-Top-Dir $topdir; } }
http://mydomain.com/dir/sub/slug/page.html
應該返回/dir/
http://mydomain.com
或者http://mydomain.com/page.html
不應該返回任何東西