Отключить хэш-URL (например, http://localhost/#/login) без изменения внешнего кода). - PullRequest
0 голосов
/ 22 марта 2019

Я хочу отключить хеш URL (например, http://localhost/#/login) Но я не могу изменить код интерфейса. Могу ли я решить ее другими способами (например, Nginx или Apache Config)?

Ответы [ 2 ]

0 голосов
/ 25 марта 2019
  1. Он может перенаправить URL-адрес хеша #/foo в этой демонстрации https://jsfiddle.net/yaoyuan/exLwhy57/1/

  2. Установите Nginx. Используйте https://github.com/denji/homebrew-nginx для Mac

  3. Установить модуль 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

  4. удалить код js в demo1.we get demo2 https://jsfiddle.net/yaoyuan/exLwhy57/2/;

  5. используйте эту конфигурацию nginx
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;        
  }
  1. запустить nginx -c nginx.config, чтобы использовать эту конфигурацию

Мы можем найти новый фрагмент в HTML, затем мы решим вопрос.

0 голосов
/ 23 марта 2019

Согласно спецификации хеш-часть URI обрабатывается на стороне клиента и не отправляется на сервер. Так что, к сожалению, нет. ссылка

...