2010-07-09 6 views
1

Glassfish v3 서버에서 URL 재 작성을 어떻게 통합 할 수 있습니까?Glassfish와의 UrlRewriteFilter

내가 이것을 알고 싶은 이유는 Quercus를 사용하여 Glassfish 서버에 PHP 응용 프로그램을 배포하고 있기 때문입니다.

그러나 Quercus는 Apache 서버의 mod_rewrite에 의존하여 URL 재 작성을 제공하지만 Glassfish에서는 사용할 수 없습니다.

+0

가능한 중복 수 있도록 이동 :

그럼 당신은있는 WEB-INF/urlwrite.xml을 가져야한다 PHP] (http://stackoverflow.com/questions/3215723/rewrite-url-on-glassfish-with-quercus-php) –

답변

1

글쎄, 당신은 두 가지 옵션이 있습니다

  • 중 아파치 전면 당신의 글래스 피쉬 인스턴스와 사용 mod_rewrite를
  • 를 사용하거나 Tuckey의

Url Rewrite Filter 내가 전자는 옵션이 아닌 것 같다 (또는 당신은이 질문을 게시하지 않을 것입니다.) 나중에, Drupal on Glassfish with clean urls using Url Rewrite Filter에 주어진 솔루션을 적용 할 수 있습니다. 기본적으로, 당신이해야합니다 :

  • 하는 신의 전쟁을 얻기과
  • 다운로드 the filter의 포장을 풀고 신 내부에 압축을 푼다 (이 WEB-INF/lib 내부의 필터 항아리를 넣고 urlrewrite.xmlWEB-INF 아래 것)
  • 하면 선언
  • 리 패키지 urlrewrite.xml 파일에
  • "포트"를 재 작성 규칙 (지침 참조) web.xml에서 필터링하고 전쟁을 배포 (또는 분해 ARCHI로 배포 ve)
0

나는 몇 주 동안이 해답을 찾고있었습니다. 보스에 대한 다음 지침에 따라 http://tapomay.blogspot.com/2011/11/clean-urls-with-drupal-urlrewritefilter.html

그는 하나의 톰캣이를했던 기사에 대한 링크 : 간단히 말해서 http://www.brianshowalter.com/blog/running_drupal_on_quercus

, 당신이 요청 된 파일 또는 디렉토리가하지 않는 경우에만 URL을 다시 작성하려면 시스템에 존재합니다. 이것이 UrlRewriteFilter만으로는 충분하지 않은 이유입니다. 이를 확인하려면 UrlRewriteFilter에 클래스 필터를 추가해야합니다.

내가 링크 된 지침은 UrlRewriteFilter (3.2.0)의 이전 버전을 사용합니다. 새 버전 (3.2.0과 함께 사용했을 때)과 마찬가지로 잘 작동합니다.

당신은 Eclipse에 파일을 추가 할 수

지침 말 (https://code.google.com/p/drupalrewritefilter/에서 링크 된 문서의 작성자, 구글 프로젝트 저장소이 거기에있다 감사) 클래스 필터와 함께 그것을 사용합니다, 하지만 Netbeans를 사용했습니다 (기존 소스로 새 프로젝트 시작).

servlet.api.jar (J2EE가 설치되어있는 경우 시스템의 일부) 및 빌드를 위해 클래스 경로에 사용중인 UrleRewriteFilter.jar 파일을 추가해야합니다.

장소 결과 drupalrewritefilter.jar 파일 및

귀하의 WEB-INF/웹

lib에 WEB-INF /에 사용하는 UrlRewriteFilter.jar 파일.xml에는 다음과 같은 필터 지시문이 있어야합니다.

<filter> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> 
    <init-param> 
     <param-name>logLevel</param-name> 
     <param-value>TRACE</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>UrlRewriteFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

UrlRewriteFilter가 사용하는 웹 사이트 대신이 필터를 사용하십시오.

참고 : Quercus 설치에는 Servlet API 2.2 또는 2.3의 처음 부분에 DOCTYPE 태그가 있습니다. 그러나 <filter> 태그는 Servlet API 2.4 이상에 있습니다. 새로운 서버 API DTD에 링크하거나 (내가했던 것처럼) DOCTYPE 태그를 모두 삭제하지 않으면 앱에 오류가 발생합니다. '당신의 드루팔 응용 프로그램을 다시로드

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" 
     "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> 

<urlrewrite> 
    <class-rule class="com.brianshowalter.drupalrewrite.DrupalRule" /> 
</urlrewrite> 

한 다음 신으로 글래스 피시에 재 작성 URL [깨끗한 URL이의