![Apache Tomcat 재작성](https://rvso.com/image/697366/Apache%20Tomcat%20%EC%9E%AC%EC%9E%91%EC%84%B1.png)
내가 하려는 것은 URL이 입력될 때 로 표시되도록 다시 쓰기 규칙을 설정하는 것입니다 example.com/test
.
그래서 예를 들어, 가능하다면 이렇게 하려고 합니다.
(공급업체 측 개발자 원격 환경)을 site.example.com
가리키도록 CNAME을 설정했습니다 .site.devexample.com
사용자가 방문하면 site.example.com
URL은 다음과 같은 내용으로 다시 작성됩니다 example.com/test
.
지금까지 가지고 있지만 작동하지 않는 것 같습니다. 방문하면 site.example.com
그대로 유지됩니다.
# rewrite rules for site.example.com
RewriteCond %{http_host} ^site\.example\.com [NC,OR]
RewriteCond %{http_host} ^www\.site\.example\.com [NC]
RewriteRule $ http://example.com/test/ [R,L]
역방향 프록시를 수행한 다음 거기에서 다시 작성해야 합니까?
편집: 사과드립니다. 조금 더 잘 설명했어야 했습니다. site.example.com은 test.com(회사 A)의 소유입니다. 그래서 우리는 site.devEnvironment.com( companyB.com )을 가리키도록 CNAME을 변경했습니다.
test.com/test는 우리의 서버이자 디렉토리입니다. URL을 site.example.com 대신 test.com/test로 다시 쓰려고 합니다.
리디렉션은 httpd.conf 파일에 설정되어 있지만 이것이 도움이 될지는 확실하지 않습니다.
답변1
rewritecond 또는 rewritemap 정규식이 일치하지 않는 것 같습니다. 나는 그것들이 미끄러운 것을 발견했습니다.
매우 자세한 mod_rewrite 로깅이 있는지 확인하십시오(apache 2.4 세트로그레벨, 아파치 2.2 세트다시 쓰기로그) 웹 서버의 관리자가 아닌 경우 이는 아마도 도움이 되지 않을 것입니다.
다음과 같이 다시 작성해 보세요.
RewriteRule ^foobar /clams/%{HTTP_HOST}/fish [R,L]
말도 안되는 위치 이므로 foobar
실제 교통을 방해하지 않습니다. 브라우저를 가리키면 foobar
다른 말도 안되는 위치로 리디렉션되어 오류가 발생하지만 URL 표시줄은 %{HTTP_HOST}
var에 포함된 내용을 정확하게 알려줍니다. (조개와 물고기는 따옴표 역할을 하므로 %{HTTP_HOST}
슬래시나 공백이 포함된 다른 까다로운 문자가 있으면 표시됩니다.)
(.htaccess 호환성을 위해 foobar에서 / 제거됨, thnx @w3dk)
답변2
내가 한 일은 Proxypass /test site.example.com을 설정하는 것이었습니다.
따라서 서버가 /test를 볼 때 site.example.com의 콘텐츠를 로드합니다.