mod_rewrite가있는 페이지 앵커?
-
06-09-2019 - |
문제
나는 mod_rewrite (Ubuntu Server 9.04에서 실행되는 Apache2)를 사용하는 웹 사이트에 페이지 앵커를 설정하려고합니다.
내 htaccess 파일은 다음과 같습니다.
RewriteEngine On
RewriteRule ^information.php/([A-Za-z0-9-]+)/?$ information.php?display=$1 [NC,NE]
일반 URL의 쿼리를 사용하고 있다면 다음과 같이 보입니다. http : //mydomain/information.php? display = faq#비용
나는 다음과 같은 것을 얻기를 바라고있다.http : // mydomain/information/faq/cost
이게 가능해? Modrewrite가 Page Anchors를 무시하고 브라우저가이를 다루고 있다는 것을 이해합니다. 나는 어떻게 든 mod_rewrite를 사용하여 요청에 앵커 정보를 포함시킬 수 있다고 생각하지만, 이것을 문서화하는 것은 찾을 수 없었고 몇 시간 동안 직접 작성하기 위해 실패했습니다.
감사!
해결책
실제로, 당신이 원한다면 결과 URL 앵커가있는 경우 그렇습니다. 가능합니다. Apache Configs에서 #은 주석의 시작을 표시한다는 것을 잊지 마십시오.
당신이 원하는 것이 이것과 같다면 - 사용자가 들어갑니다.
http://example.com/page/anchor그리고 리디렉션됩니다
http://example.com/?p=page#anchor- 301 리디렉션이나 그와 비슷한 것을 사용해야하므로 사용자에게 투명하지 않습니다.
결론 : 그러한 리디렉션 규칙을 작성할 수는 있지만 완전히 서버 측만 수행 할 수는 없습니다. 그래서 나는 당신이 지적 할 수 있다고 생각합니다 /information/faq
에게 /information.php?display=faq
그런 다음 다음과 같은 URL을 사용하십시오.
http://example.com/information/faq#foo거의 당신이 원하는 것입니다. 그리고 그들은 캐싱을 엉망으로 만들지 않습니다.
(우와, 벌써 자정이야?)
제휴하지 않습니다 StackOverflow