鍍金池/ 問答/C++  Linux  網(wǎng)絡(luò)安全  HTML/ nginx url跳轉(zhuǎn),結(jié)果無效,怎么解決?

nginx url跳轉(zhuǎn),結(jié)果無效,怎么解決?

我有個地址,必須帶#引用遠程的svg圖片,因為只有這樣才能在html里直接用use標簽引用過來。域名不一樣存在跨域問題,不讓調(diào)用,于是用nginx做跳轉(zhuǎn)且url地址不變。

比如真正的文件路徑是:
https://www.aaa.com/icons/homes.svg

遠程上的地址是:
https://cdn.aaa.com/icons/homes.svg

這個是homes.svg的文件

<svg xmlns="http://www.w3.org/2000/svg">
    <symbol id="homes" viewBox="0 0 1024 1024">
        <path d="M956.527709 843.236073..."></path>
    </symbol>
    ..........
    ...more...
    ..........
    <symbol id="star" viewBox="0 0 1024 1024">
        <path d="M956.527709 843.236073..."></path>
    </symbol>
</svg>

我在 https://www.aaa.com/ 頁面中想用這個方式來寫,注意看路徑部分

<svg viewBox="0 0 1024 1024"><use xlink:href="/res/icon/homes"></use></svg>

實際上是訪問的這個路徑

<svg viewBox="0 0 1024 1024"><use xlink:href="/res/icon/homes.svg#homes"></use></svg>

于是我就這樣寫了配置,正則我測試過,沒錯

location /res/icons/{
    rewrite /res/icons/(.*?)$ /svg/$1.svg\#$1 break;
    proxy_pass https://cdn.aaa.com;
}
  1. 結(jié)果沒有效果,應(yīng)該怎么辦?
  2. 如果是認為#后面都是注釋,有沒有什么辦法,不讓nginx當(dāng)做是注釋?就像轉(zhuǎn)義字符一樣。
  3. 或者不這么寫,有什么辦法嗎? 貌似偽靜態(tài)不行,但不確定。
回答
編輯回答
過客

已找到解決辦法。

2017年4月29日 09:48
編輯回答
初念

資源后面的#號不會隨著請求代入的,也就是你nginx上面不會看到#號以及后面的內(nèi)容的,根本不需要匹配

2017年12月9日 16:24