Apache — возможно ли переписать URL-адреса на основе фрагментов (хэштегов)?

Apache — возможно ли переписать URL-адреса на основе фрагментов (хэштегов)?

Использование Apache/2.4.54 (Win64)

Меня попросили переписать старый домен на новый, вот так

  • Отhttps://oldtest.mydomain.com/company/customerpage/#/customer/<getThisNumber>/something
  • Кhttps://newtest.mydomain.com/company/something/customer/<getThisNumber>

Можно было бы использовать регулярное выражение для захвата номера и передачи его новому серверу, а затем просто перенаправить с помощью [L,R=301].

Но реф.этот пост на StackOverFlow

Я знаю, что хэштег — это идентификатор фрагмента, и что строки после хэштега не являются тем, что можно обработать с помощью mod_rewrite, но я ожидал, что сам хэштег появится. Поэтому я попробовал правила для сопоставления, как эти

Итак, я попробовал (фрагмент)

<LocationMatch "^\/company\/customerPage\/">
    LogLevel alert rewrite:trace3
    RewriteCond %{QUERY_STRING} ([0-9]*)\/something$
    RewriteRule ^(.*)$ "https://newtest.mydomain.com/company/something/customer/$1" [L,R=301]

Это не работает. Вопрос в том, есть ли у меня небольшая проблема в коде или я также осознаю, что может быть риск того, что это будет невозможно выполнить... но, надеюсь, это не так.

решение1

https://www.w3.org/Addressing/URL/4_URI_Recommentations.html

Символ решетки ( #, #, ASCII 23 hex) зарезервирован в качестве разделителя для отделения URI объекта от идентификатора фрагмента.

Подразумевается, что это означает, что

  • Хэштег #НЕ является частью URI.

  • И только URI отправляется на веб-сервер.
    Хэш и идентификатор фрагмента НЕ отправляются на веб-сервер в запросе.

На стороне сервера Apache и/или mod_rewrite просто нечего обрабатывать.


Вам нужно будет решить эту проблему с помощью чего-то, что работает на стороне клиента; например, JavaScript, который выполняется в окне браузера.

Связанный контент