將所有不以 example.com/wiki 開頭的 example.com/path 重定向到 example.com/wiki - NginX 代理
我最近將我的網站從 Wordpress 移到了 confluence,但我遇到了頁面重定向問題。我為我的 Confluence 設置了一個自定義的 404 頁面,但它只有在你輸入時才有效
https://www.freesoftwareservers.com/asdasdas
但是如果你去一個舊的連結,比如
https://www.freesoftwareservers.com/index.php/2015/09/03/install-dd-wrt-on-linksys-ea6500/
它會將您帶到我的“confluence”頁面,但這
/wiki
是一個特殊的外掛,我想成為面向公眾的一面。我通過不同的子域訪問該頁面,然後是 www。我的“解決方法”將是兩件事之一,
1)全部重定向
https://www.freesoftwareservers.com/index.php/*
到https://www.freesoftwareservers.com/wiki
2)全部重定向
https://www.freesoftwareservers.com/(Anything BUT /wiki)
到https://www.freesoftwareservers.com/wiki
我在 NginX 網站上找到了一些接近的東西,但它比我需要的更複雜,而且我在所需的表達式方面遇到了麻煩。
https://www.nginx.com/blog/creating-nginx-rewrite-rules/
這是一個使用重寫指令的範例 NGINX 重寫規則。它匹配以字元串 /download 開頭的 URL,然後在路徑後面的某個位置包含 /media/ 或 /audio/ 目錄。它將這些元素替換為 /mp3/ 並添加適當的文件副檔名 .mp3 或 .ra。這 $ 1 and $ 2 個變數擷取不改變的路徑元素。例如,/download/cdn-west/media/file1 變為 /download/cdn-west/mp3/file1.mp3。
server { ... rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last; return 403; ... }
也許我需要把它分成兩部分,一個返回 404 的伺服器塊和一個 404 處理程序,但我想把這一切都保留在我現有的 nginx 伺服器塊中。
順便說一句,我已經在使用以下重寫規則將 domain.com/ 重定向到 domain.com/wiki,但這僅在您最後鍵入https://www.freesoftwareservers.com時才有效。
rewrite ^/$ /wiki permanent;
感謝您提供任何幫助,網際網路上有許多指向我網站的斷開連結:)
好吧,一旦我發布了賞金,我在為我的問題寫一個更好的描述時就想通了……
rewrite ^/index.php /wiki permanent;