2012-04-17 3 views
0

웹 사이트의 거의 모든 페이지에 포함 할 공통 header.php가 있습니다. header.php 파일의 다른 리소스에 대한 상대 링크가 있습니다. 루트 폴더 아래의 다른 하위 폴더에있는 다른 페이지에 포함 시키면 일부 링크가 끊어집니다. header.php의 모든 링크를 절대 만들 수 있습니다. 이제 다른 문제가 나타납니다. 응용 프로그램을 다른 도메인으로 이동하고 wwwroot 아래에 둔다면 절대 링크가 작동하지 않습니다. PHP에서이 애플리케이션의 루트 인 URL 부분을 추출하는 방법을 찾지 못했습니다. 필자는 응용 프로그램 루트에 대한 변수를 정의하고 header.php 내의 모든 링크에이 변수를 접두사로 붙였습니다. 이렇게하면이 응용 프로그램을 한 곳에서 다른 곳으로 이동할 때 변수 하나만 변경하면됩니다.공통 헤더 파일의 깨진 링크를 피하는 방법

이런 종류의 상황을 처리하는 다른 더 좋은 방법이 있는지 궁금합니다.

피드백을 보내 주시면 감사하겠습니다.

편집 : 더 많은 피드 백을 받으려고합니다.

+1

PHP에서 이것을 처리하는 가장 일반적인 방법은 mod_rewrite와 친구들을 사용하여 기본 컨트롤러를 통해 모든 요청을 보내는 것입니다. PHP에서는 Java와는 약간 다른 방식으로 처리합니다. 자바에서는 요청 처리기 응용 프로그램과 직접 통신하는 내장 서버 나 서버를 사용하기 때문입니다. CGI를 중심으로 설계된 PHP는 일반적으로 이러한 방식으로 작동하지 않습니다. 보통 경로 파싱을 포함하는 요청 부분은 웹 서버에 의해 수행되며 PHP가 실행될 때까지 완료되었습니다. 서버는 올바른 스크립트를 찾기 위해 그것을 사용했습니다. – DaveRandom

답변

0

중앙 변수와 마찬가지로 일반적인 header.php 파일을 작성하면 <base> HTML 요소를 사용할 수 있지만 HTML로 제한됩니다.

절대 URI를 요청 URI로 해결하거나 요청 URI에 상대적으로 매핑 될 수 있도록 상대 URL을 컨텍스트로 해석 할 수있는 매핑 기능을 스스로 만들 수 있습니다 다시.

그런 다음 URI를 자체적으로 처리하는 출력 필터를 구현할 수 있으며 특수 처리를 위해 몇 가지 특수 접두사를 사용할 수 있습니다.

관련 문제