Menggunakan UrlRewriteFilter di Railo Tomcat dan CFWheels


Secara default, CFWheels mendukung url rewrite untuk server Apache (.htaccess) dan IIS (IsapiRewrite4.ini untuk IIS 6, dan web.config untuk IIS 7). Jika menggunakan Railo Tomcat, kita bisa menggunakan UrlRewriteFilter.

UrlRewriteFilter adalah sebuah Java Web Filter yang dibuat untuk J2EE web application server seperti Resin, Orion, dan Tomcat.


Langkah-langkah setup UrlRewriteFilter di Railo Tomcat dan CFWheels adalah:

  1. Download versi terbaru dari UrlRewriteFilter (versi stabil terbaru ketika tulisan ini dibuat adalah 3.2.0)
  2. Extract file tersebut, dan copy-kan ke {railo-install-path}/tomcat/webapps/ROOT/WEB-INF, nantinya akan ada file {railo-install-path}/tomcat/webapps/ROOT/WEB-INF/lib/urlrewrite-3.2.0.jar dan {railo-install-path}/tomcat/webapps/ROOT/WEB-INF/urlrewrite.xml
  3. Edit file {railo-install-path}/tomcat/webapps/ROOT/WEB-INF/web.xml, tambahkan baris
    <filter>
    	<filter-name>UrlRewriteFilter</filter-name>
    	<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>UrlRewriteFilter</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>
  4. Edit file {railo-install-path}/tomcat/webapps/ROOT/WEB-INF/urlrewrite.xml, tambahkan baris
    <rule>
    	<condition type="request-uri" operator="notequal">^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|railo-context|files|images|javascripts|miscellaneous|stylesheets|robots.txt|sitemap.xml|rewrite.cfm)($|/.*$)</condition>
    	<from>^(.*)$</from>
    	<to>/rewrite.cfm?\$pathinfo=$1&amp;%{query-string}</to>
    </rule>
    
  5. Edit file {railo-install-path}/tomcat/webapps/ROOT/wheels/dispatch/request.cfm (asumsi CFWheels diletakkan di webroot dari Railo Tomcat), cari function $getPathFromRequest, tambahkan baris 7 dan 8 seperti di bawah ini
    <cffunction name="$getPathFromRequest" returntype="string" access="public" output="false">
    	<cfargument name="pathInfo" type="string" required="true">
    	<cfargument name="scriptName" type="string" required="true">
    	<cfscript>
    		var returnValue = "";
    		
    		if (StructKeyExists(url, "$pathinfo"))
    			arguments.pathInfo = url.$pathinfo;
    		
    		// we want the path without the leading "/" so this is why we do some checking here
    		if (arguments.pathInfo == arguments.scriptName || arguments.pathInfo == "/" || arguments.pathInfo == "")
    			returnValue = "";
    		else
    			returnValue = Right(arguments.pathInfo, Len(arguments.pathInfo)-1);
    	</cfscript>
    	<cfreturn returnValue>
    </cffunction>
    
  6. Restart Railo Server. Setiap melakukan perubahan pada file {railo-install-path}/tomcat/webapps/ROOT/WEB-INF/urlrewrite.xml, harus dilakukan restart server.

Referensi:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: