2014-09-18 3 views
1

중복 슬래시를 무시합니다. 내가 그것을 읽고 있어요 경우 아파치 문서에 따르면 바로이 작동해야하지만아파치 LocationMatch 정규식은 URL의 시작 부분에 추가 슬래시가 나는 아파치의 LocationMatch 지시문을 이상한 행동을 보내고있어

<LocationMatch ^/appcontext/(a|b)> 

      SetHandler weblogic-handler 
      WebLogicCluster apphost01:xxxx,apphost02:xxxx 
      WLProxySSL ON 

    </LocationMatch> 

을 나는 다음과 같은 URL을 입력하면 그것은 또한 백엔드 호스트에 전달되고 :

에 https : // < 호스트 이름 : 포트 > /////// appcontext/a/

아파치 문서에서는/appcontext/a /에 대해서만 지시문을 적용해야한다고 명시되어 있습니다. 단, 정규식 또는

에서 플러그 - 더 mod_wl 몇 가지 문제가 있습니다3210

http://httpd.apache.org/docs/2.2/mod/core.html

"예를 들어, < LocationMatch^요청 URL/ABC하지만 요청 URL을 일치합니다/ABC > // ABC 방송"

는 사람이를 달성하기 위해 어떤 제안이 있습니까?

+0

'^/appcontext/(A | B) '도 일치합니다'/// appcontext가//'도 (의의 #'/''전 appcontext') 이는 중복 된 슬래시로 간주되기 때문입니다. 어떤 문제가 발생 했습니까? – anubhava

+0

내가 틀릴 수도 있지만 유효한 URI처럼 보이지는 않습니다. 이후 일부'//','인 appcontext가//'(이것은'// '로 시작하고 권한을 따르지 않기 때문에), 유효한 기관 컴퍼넌트도 유효한 경로가 아닙니다 //////// . http://tools.ietf.org/html/rfc3986#section-3 –

+0

우리는/appcontext/A의 위치 지시하고 위해 쿠키를 전송하지 않습니다 (중복 슬래시를 고려하지 않는 브라우저 쿠키를 /// appcontext가// 만/appcontext/A에 대한 /) – jpt

답변

1

예 아파치 재 작성 규칙에 붕괴 추가 슬래시를 수행합니다. 여분의 슬래시를 일치시키고 제거하려면 THE_REQUEST 변수를 사용할 수 있습니다. 루트 htaccess로이 장소 :

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^(.*?)//+(.*)$ 
RewriteRule^%1/%2 [R=302,L,NE] 
+0

불행히도 우리는 .htaccess를 사용하고 있지 않습니다. 이것은 가상 경로입니다. 그러나 .conf 파일의 VirtualHost 내부에서도 작동하는 다른 게시물에서 비슷한 대답을 발견했습니다. http://stackoverflow.com/questions/11781237/how-can-i-301 -redirect-multiple-leading-slashes-file-txt-to-just-file-txt 버전을 테스트하지 못했지만 답변을 수락 된 것으로 표시합니다. 시간 내 주셔서 감사합니다. – jpt

+0

수락 해 주셔서 감사합니다. 네, 사실 그 대답은 가상 경로에서 작동합니다. – anubhava