Nginx
Nginx:使用 proxy_pass 和 URL 參數和特殊字元重寫 URL
我研究了所有關於 nginx 代理和重寫功能的精彩文章,但無法找到解決我的問題的方法。所以我們在這裡。我用 vaadin 編寫了一個 Web 應用程序,它能夠處理以下請求:
http://<server>/#main/search?country=germany&type=songwriter
對於 SEO 優化,我想處理“說話”的 url,例如:http:///songwriter/germany。所以我認為在網路伺服器中重寫 URL 是解決方案。但是無論我嘗試什麼,我都無法將主題標籤放在請求中並形成最終解決方案!這是我嘗試過的:
location /songwriter/ { proxy_set_header Host $host; proxy_redirect off; # Option 1 - hastag is encoded rewrite ^/songwriter/(.+) /#main/suche?land=$1 break; proxy_pass http://127.0.0.1:8080; }
我在跟踪中得到的是:/%23main/suche land=berlin/。任何的想法?
URL 片段只是客戶端,永遠不會發送到伺服器。(因為那裡不允許使用文字
#
,所以 nginx URL 對其進行編碼。)如果您的 Web 應用程序濫用 URL 片段進行導航,那麼它們只能由您的客戶端(在瀏覽器中)程式碼處理。請注意,以這種方式使用 URL 片段不被認為是好的做法。您可能必須大幅重寫您的 Web 應用程序才能擺脫它們。