adjustPath 인자로 확장자대신 "." 을 지정할 수 있습니다.
$tpl->prefilter = "adjustPath & . ";
이 때는 "./ 또는 './ 또는 url(./ 로 시작하는 문자열은 모두 상대경로로 인식하게 됩니다.
이 방법과 함께 확장자로 인식하는 방법도 같이 사용하려면 다음과 같이 지정합니다.
$tpl->prefilter = "adjustPath & .,css,js,gif,jpg,jpeg,png,swf ";
인자의 가장 앞에 '.' 가 있으면 됩니다.
'.' 가 적용되었을 때도 "\./ '\./ url(\./ 로 이스케이프할 수 있습니다.
adjustPath() 함수내에는 사용자가 정의할 수 있는 두 개의 변수가 있습니다.
Template_.prefilter.adjustPath.php |
<?php
function adjustPath(&$source, $tpl, $indicator='') { // $default_indicator = 'css,js,gif,jpg,jpeg,png,swf'; $path_filter = array(); // ... } ?> |
$default_indicator는 adjustPath 필터의 인자를 지정하지 않았을 때 사용되는 기본값이며, $path_filter 는 변환된 경로를 한 번 더 변환하기 위해 사용되는 정규표현식 패턴입니다.
예를 들어 홈페이지는 http://www.xtac.net 인데 gif 파일은 http://gif.xtac.net 에, jpg 파일은 http://jpg.xtac.net 저장되어 있을 때, 각서버의 디렉토리 구조가 같다면 다음과 같이 설정할 수 있습니다.
$path_filter = array(
'/^(.*gif)$/'=>'http://gif.xtac.net$1',
'/^(.*(jpg|jpeg))$/'=>'http://jpg.xtac.net$1',
);
'/^(.*gif)$/'=>'http://gif.xtac.net$1',
'/^(.*(jpg|jpeg))$/'=>'http://jpg.xtac.net$1',
);
이 정규식은 변환된 절대경로 앞에, 확장자에 맞는 도메인네임을 붙여주는 역할을 합니다.
또는 다음과 같이 웹서버의 리다이렉션이 설정되었을 때,
RedirectMatch /imgA/(.*)\.(gif|jpg)$
http://image.xtac.net/templates/skinA/img/$1.$2
http://image.xtac.net/templates/skinA/img/$1.$2
$path_filter 에는 리다이렉션의 역으로 작성하면 되고, 마찬가지로 이미지서버와 웹루트하위경로가 같을 때 유효합니다.
$path_filter = array(
'@^/templates/skinA/img/(.*)\.(gif|jpg)$@' => '/imgA/$1.$2'
);
'@^/templates/skinA/img/(.*)\.(gif|jpg)$@' => '/imgA/$1.$2'
);
이전 | 목록 | 다음 |