programing

%23이 들어 있는 URL을 다시 쓰는 방법은 무엇입니까?

lovejava 2023. 6. 18. 10:02

%23이 들어 있는 URL을 다시 쓰는 방법은 무엇입니까?

저는 (워드 프레스) 블로그를 가지고 있는데, 여기서 사용자들은 댓글을 달면 그들의 댓글에 앵커가 있는 페이지로 다시 이동합니다.다음과 같이 표시해야 합니다.

http://example.org/foo-bar/ #http-570630

하지만 어떻게든 로그 파일에 404개의 URL이 저장됩니다.

http://example.org/foo-bar/%23comment-570630

이 문제를 해결하기 위해 .htaccess 다시 쓰기 규칙을 작성하는 방법이 있습니까?

보너스 질문:왜 이런 일이 일어나는지 그리고 내가 그것에 대해 무엇을 할 수 있는지 아십니까?

%23의 URL 인코딩 표현입니다.#당신의 다시 쓰기 규칙이 만족스럽지 못할 것 같습니다.%23반응이 어떻게 구성되고 있는지 조사해야 합니다.특히, 모든 URL 인코딩 기능이 작동합니다.

그러나 다시 쓰기 규칙으로 문제를 해결할 수 있습니다.고객에게 의견을 제출한 후 두 가지 답변을 회신한다는 점을 이해합니다.그렇기 때문에 첫 번째 반응을 수정하는 것이 좋습니다.

# http://example.org/foo-bar/%23comment-570630 -> http://example.org/foo-bar/#comment-570630
RewriteCond %{REQUEST_URI} %23comment-\d+$
RewriteRule (.+)\/%23-comment(\d+)$ http://host/$1/#comment-$2 [R=301]

테스트되지 않았지만 작동해야 합니다(탈출에 대한 확신이 없습니다).\%mod_model)에서 특별한 의미를 가지고 있기 때문입니다.

B 깃발을 써보셨습니까?

RewriteCond %{REQUEST_URI} %23comment-\d+$
RewriteRule (.+)\/%23-comment(\d+)$ http://host/$1/#comment-$2 [B,R=301]

특정 사례로 테스트되지 않았지만 관련 문제에 사용됩니다.

언급URL : https://stackoverflow.com/questions/2438509/how-to-rewrite-a-url-with-23-in-it