문제

나는 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
거의 당신이 원하는 것입니다. 그리고 그들은 캐싱을 엉망으로 만들지 않습니다.

(우와, 벌써 자정이야?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top