mod_rewrite의 RewriteRules를 사용하여 아파치에 몇 가지 기본 리디렉션이 있습니다. Zend Framework를 사용하여 프로그래밍 방식으로 이러한 리디렉션을 수행하려고합니다. 이러한 리디렉션에는 다른 도메인이 포함될 수 있습니다. 예.Zend - mod_rewrite와 같은 기타 도메인 리디렉션
RewriteRule ^/xmas(.*) http://mycdn.com/things/xmas$1 [P]
아파치로 리디렉션 할 때 url은 동일하게 유지됩니다. 브라우저의 주소 표시 줄에 ZF에서이 동작을 모방하고 싶지만 다른 도메인에 대한 방법을 찾을 수 없습니다.
Zend_Controller_Router_Route
을 확장하고 match()
메서드를 확장 한 다음 모듈, 컨트롤러, 동작 등의 필드가있는 배열을 반환하면 사이트 리디렉션을 수행 할 수 있습니다.
class My_Route extends Zend_Controller_Router_Route
{
// ...
public function match($path)
{
// ...
return
array(
'module' => 'default',
'controller' => 'mycontroller',
'action' => 'index',
);
}
}
그러나 분명히 단지 (Haven't 어느 사양에 도메인 또는 전체 URL을 지정하는 방법을 발견의 현장 루트 작동하기 때문에 나는 그것이 다른 도메인으로 리디렉션을 위해 작동하도록 관리하지 않은).
내가 좋아하는 또 다른 방법을 시도 :
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$r->gotoUrl("http://otherdomain.com/some-stuff-to-redirect-to")->redirect();
이는 리디렉션을 수행하지만, 완전히 새로운 요청을하는 페이지를 변경합니다.
어떻게 이것을 ZF에서 구현할 수 있습니까? ZF1 사용.
Re. 비용 : CDN에 대한 요청이 사용자에게 전달되기 전에 원래 서버로 "돌아와야"하므로 CDN에서 사용자에게 서비스를 제공 할 때 얻을 수있는 이점은 발생하지 않습니다. 레. 내가 뭘하고 싶은지 - 나는 정적으로 CDN에 집을 호스팅하고 있지만 분명히 홈 URL이 CDN으로 나타나길 원하지 않는다. 성능 저하없이 이것을 결합 할 수 있습니까? – xmar
나는 '집'이라고 가정하면 홈페이지를 의미합니다. 사용자가 설정 한 프록시 항목에 관계없이 홈페이지를 보려고 서버에 방문하는 경우 CDN에서 홈페이지를 호스팅하지 않습니다. 기본적으로 코드에서 설정하려는 내용을 지원하는 '원본 끌어 오기'CDN을 조사 할 수 있습니다. 그러나 CDN에서 홈페이지를 호스팅하려면 CDN에서 전체 도메인의 DNS를 지정해야합니다. 그것은 전부 또는 아닙니다. –
감사합니다. Tim. 마침내 홈 HTML을 내 응용 프로그램 서버로 옮기고 정적 요소 만 CDN에서 제공합니다. 있다면 영향을 측정합니다. – xmar