私はnginxを使用するのが初めてで、別のURLにリダイレクトしようとしています。Nginxが/#/ urlを使用してURLにリダイレクト
https://server.com/#/page.html -> https://server.com/page.html
/#/
はAngular2のルータ機能を使用してから来ています。 Angular2は起動時にアプリケーション全体を読み込むため、静的なHTMLにページを変更することにしました。この1ページの情報をそのまま表示する必要はありません。
この問題を解決するための私の試みは次のとおりです。 /anotherpage -> /page.html
からリダイレクトできますが、/#/anotherpage -> /page.html
はAngular2アプリを読み込み、存在しないルートにルーティングしようとします。この設定と場所のディレクティブを使用して
:ベストプラクティスに関する
server {
listen 8001;
server_name server.com;
...
#SSL Things
...
root /to/root/folder/public;
#Redirects:
location = /anotherpage {
rewrite ^/.* https://$server_name/page.html;
}
#Does not redirect:
location = /#/anotherpage {
rewrite ^/.* https://$server_name/page.html;
}
}
任意の提案も同様に歓迎されています。
これには多くの回答があります。ブラウザはサーバにハッシュパートを送ることはないので、あなたのnginxは常に '/'へのリクエストを見るでしょう。 –
私はそれを知らなかったのです。私が '/ folder /#/ loremipsum'を持っているかどうかを調べるには'/folder/'だけがサーバに送られますか?私は編集を混乱させて申し訳ありません。 –
'/'と一致する場所はありません。あなたの場所 'location = /#/ anotherpage'は実際に' example.com /%23/anotherpage'と一致します –