Я хочу отключить хеш URL (например, http://localhost/#/login) Но я не могу изменить код интерфейса. Могу ли я решить ее другими способами (например, Nginx или Apache Config)?
Он может перенаправить URL-адрес хеша #/foo в этой демонстрации https://jsfiddle.net/yaoyuan/exLwhy57/1/
#/foo
Установите Nginx. Используйте https://github.com/denji/homebrew-nginx для Mac
Установить модуль Nginx для Mac https://denji.github.io/homebrew-nginx/#modules brew переустановите nginx-full --with-sub-module; Тогда мы можем использовать выражение sub_filter https://nginx.org/en/docs/http/ngx_http_sub_module.html
удалить код js в demo1.we get demo2 https://jsfiddle.net/yaoyuan/exLwhy57/2/;
location / { root html; (use your folder) index index.html index.htm; sub_filter </head> '</head><script> function redirect() { if (location.hash === "#/foo") { window.location.replace("https://example.com"); } } window.onhashchange = function() { if (location.hash === "#/foo") { window.location.replace("https://example.com"); } } redirect(); </script>'; sub_filter_once on; }
nginx -c nginx.config
Мы можем найти новый фрагмент в HTML, затем мы решим вопрос.
Согласно спецификации хеш-часть URI обрабатывается на стороне клиента и не отправляется на сервер. Так что, к сожалению, нет. ссылка