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 16진수) 문자는 객체의 URI를 조각 식별자와 구분하기 위한 구분 기호로 예약되어 있습니다.

거기에 내포된 의미는 다음과 같습니다.

  • 해시 #태그는 URI의 일부가 아닙니다.

  • 그리고 URI만 웹 서버로 전송됩니다.
    해시 및 조각 식별자는 요청 시 웹 서버로 전송되지 않습니다.

Apache 및/또는 mod_rewrite가 처리할 서버 측이 없습니다.


클라이언트 측을 실행하는 것으로 이 문제를 해결해야 합니다. 예를 들어 자바스크립트는 브라우저 창에서 실행됩니다.

관련 정보