我正在嘗試幾個小時來解決這個問題,那應該不是那麼讓人頭疼。重寫url段以獲取參數nginx
我需要一個正確的代碼爲nginx服務器來實現這一點。
我有一個這樣的網址: https://www.example.com/share/userid/file/
我想將它改寫爲: https://www.example.com/share/?id=userid&key=file/
我已經在這裏計算器幾種解決方案嘗試過,但他們都沒有工作。
我已經試過這樣:
rewrite ^/share/(.*)/(.*)$ /share/index.php?id=$1&key=$2 ;
這工作,如果我把一個index.php文件存在,但我不能這樣做,原因/股/是一個固定鏈接,而不是一個實際的文件夾(WordPress的)。如果我這樣做:
rewrite ^/share/(.*)/(.*)$ /share/?id=$1&key=$2 ;
我得到一個404 nginx錯誤。
它似乎也是^/share /(。)/(。)$實際上並沒有觸發重寫,所以這一定是錯誤的,雖然我在看nginx重寫文檔並且看起來沒問題。
任何想法?我也嘗試try_files沒有成功。
謝謝
UPDATE:
OK所以此工程
rewrite ^(/share/)([0-9]+)/(.*)/$ https://$server_name/share/?id=$2&key=$3 last;
但是由於某種原因,如果我這樣做是行不通:
rewrite ^(/share/)([0-9]+)/(.*)/$ /share/?id=$2&key=$3 last;
我添加$ server_name使其工作,任何人都可以解釋我爲什麼?
我需要nginx的代碼,我不使用Apache。 –
編輯答案 –
謝謝,但那幾乎可以匹配任何東西,請檢查我的更新 –