%3F.png)
Использование 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, который выполняется в окне браузера.