2017-12-11 3 views
0

클라이언트가 동일한 서버 하위 경로로 다른 리다이렉션을 처리하는 방법을 테스트하기 위해 VirtualHost 구성을 만들려고합니다. 그리고 앞으로도 더 많은 상태 코드 (예 : 307, 308 ...)를 포함 할 수 있도록 유연성을 유지하십시오.Apache VirtualHosts가 여러 개의 리디렉션을 테스트하는 방법

또한 원하는 기능은 적용되는 호스트 이름에 관계없이이 구성을 다시 사용하는 것입니다 (즉, 리디렉션은 모두 동일한 호스트 이름이지만 다른 포트/하위 경로에 있음). 그래서 Apache Redirects 지시어는 아마도 그 트릭을 수행하지 않을 것입니다.

Listen 301 
Listen 302 

<VirtualHost *:301> 
    RewriteEngine On 
    RewriteRule ^(.*)$ $1 [R=301,L] 
</VirtualHost> 

<VirtualHost *:302> 
    RewriteEngine On 
    RewriteRule ^(.*)$ $1 [R=302,L] 
</VirtualHost> 

<VirtualHost *:80> 
    [...] 
</VirtualHost> 

문제입니다 포트 아니오 :

내 첫번째 생각은 내가 테스트하고 그것을 위해 RewriteRule를 보관하고 싶어하지 결과 HTTP 코드에 따라 2 개 개의 다른 인터페이스에서 수신이 명 별도의에서 VirtualHost 별도 만드는 것이 었습니다 . (즉, 301, 302)도 리다이렉트 된 URL의 일부가되어 유효 리디렉션이 일어나지 않습니다. 심지어 정규식 그룹의 외부에있는 포트를 떠나 보았습니다. ^(.*):302$ 행운이 없습니다. 이 같은

+0

당신이 달성하려고하는 무엇을 조금 불분명하다. 브라우저 주소창에 입력 된 정확한 URL과 원하는 도착 URL의 예를 들려 줄 수 있습니까? –

+0

@DusanBajic yup; 미안해 내가 처음에 분명하지 않다면. 기본적으로 http : // : 301/whatever을 301 코드로 'http : // /whatever'으로 리디렉션하고 http : // 에'http : // : 302/무엇이든지 '로 리디렉션하고 싶습니다./무엇이든 '영구 경로 재 지정 (경로 유지 및 포트 번호 제거) – Alfageme

답변

0

뭔가 작업을해야합니다 :

<VirtualHost *:81> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ([^:]*):([0-9]*)$ 
RewriteRule^http://%1%{REQUEST_URI} [R=301,L,QSA] 
</VirtualHost> 
관련 문제