2013-01-20 2 views
0

내 웹 사이트를 다시 배열하고 모든 고객 페이지를 디렉토리 (/ customerPages)로 이동하면서 동일한 URL (표시된 URL에 액세스 할 수있는 URL 및 표시된 URL 브라우저에서). ApachePHP (CakePHP)을 사용하고 있습니다. 나는 다음과 같은 방법으로 내 404 오류 페이지를 재배 선 시도했습니다동일한 URL을 누르는 동안 Apache에서 페이지 이동

는 :

// Redirect customers to customers landing pages under /customerPages 
if (strpos($message,'customerPages') == false) { 
    $url = 'http://'.$_SERVER['HTTP_HOST'].'/customerPages'.$message; 
    $homepage = file_get_contents($url); 
    echo $homepage; 
} 

그러나이 솔루션은 상대 경로를 사용하여 작성된 모든 이미지를 나누기.

if (strpos($message,'customerPages') == false) { 
    $url = 'http://'.$_SERVER['HTTP_HOST'].'/customerPages'.$message; 
    header("Location: ".$url); 
} 

을하지만 URL 변경보다는 :

나중에 내가 대신 리디렉션을 사용하여 시도했습니다. 행운을 빌어 RewriteRule으로 부단히 시도합니다.

첫 번째, 두 번째 또는 다른 방법을 사용하여 어떻게하면됩니까?

답변

1

또 다른 방법은, 단지 기본적인 아이디어 : 당신의 /oldpath/.htaccess 파일 1. 넣고 (우리가 파일을 처리하는 404 오류가 발견되지 않음) : - :

0,123,677

ErrorDocument 404 /oldpath/redirect.php 

2. /oldpath/redirect.php 파일 (우리의 핸들러) 파일이 새로운 위치에있는 경우에만 만들 새 경로로 리디렉션

+0

URL은 URL이기 때문에 file_exists가 작동하지 않습니다. .com/ABB'는 실제로'site.com/ABB/index.php' 또는'site.com/ABB/index.html'입니다. 글쎄, 어떻게 클라이언트 브라우저에서 URL을 편집 이해가 안 돼? – Kuf

+0

'if (file_exists ('/ newpath/'.$ filename) && (! is_dir ('/ newpath/'.$ filename))) {...}' – clover

+0

k, 나는 이것을 커버했다. URL 재 작성을 위해 내가 할 수있는 일은 무엇입니까? – Kuf

1

새 위치 (/ customerPages)의 이미지 요청을 이전 경로로 리디렉션해야합니다. 당신은 다시 그러한 요청을 리디렉션 mod_rewrite를 아파치 모듈을 사용할 수 있습니다

RewriteEngine on 
RewriteRule ^/customerPages/(.*\.jpg|.*\.gif|.*\.png) /oldpath/$1 [R] 
+0

작동하지 않습니다. html과 php 파일을 사용하여 이미지를'/ customerPages'에 복사했기 때문에 리다이렉션은'/ customerPages'를 이미지 요청에 추가해야하지만, 어떤 이미지에'customerPages'를 추가해야하는지 어떻게 알 수 있습니까? 약 300 페이지가 있고 나는 그것들 모두를'RewriteRule'로 쓰고 싶지 않기 때문에 아파치 서버의 속도를 늦추지는 않을 것입니다. – Kuf

+0

이므로 이전 위치에서 새 위치로 리디렉션해야합니다. – clover

+0

많은 onld 위치가 있으며 하나의 규칙을 사용하여 모든 위치를 파악하려고합니다. 내 질문을 업데이트했습니다 – Kuf

관련 문제