How to Serve Static Files via the IBM HTTP WebServer : 

To serve static files through the webserver versus having WebSphere Application Servers file serving servlet serve them, you must disable the file serving enabling attribute for each deployed web modules for your application .  

To determine the list of web modules in your application, from the WebSphere Administrative Console, expand your application server.  Under the expanded category, there should be a selection for Installed Web Modules.  The list of installed Web Modules for the WebSphere Portal Application Server install are detailed below : 

  NAME				 APPLICATION		 	CONTEXT ROOT	
 wps.war				WPS Enterprise Application		/wps
 PortletInstaller.war			WPS_PA_101			/wps/WPS_PA_101
 CustomizePortlets.war		WPS_PA_103			/wps/WPS_PA_103
 SelectorPortlet.war			WPS_PA_105			/wps/WPS_PA_105
 CredentialAdministration.war	WPS_PA_107			/wps/WPS_PA_107
 WebServicesAdministration.war	WPS_PA_109			/wps/WPS_PA_109
 Settings.war			WPS_PA_111			/wps/WPS_PA_111
 MarkupsManager.war		WPS_PA_113			/wps/WPS_PA_113
 UsersManager.war			WPS_PA_115			/wps/WPS_PA_115
 PortletManagementPortlets.war	WPS_PA_117			/wps/WPS_PA_117
 Tracing.war			WPS_PA_119			/wps/WPS_PA_119
 GroupsManager.war		WPS_PA_121			/wps/WPS_PA_121
 SearchPortlets.war			WPS_PA_123			/wps/WPS_PA_123
 ClippingPortlets.war		WPS_PA_125			/wps/WPS_PA_125
 ClientsManager.war		WPS_PA_127			/wps/WPS_PA_127
 AccessControl.war			WPS_PA_129			/wps/WPS_PA_129
 WelcomePortlet.war		WPS_PA_131			/wps/WPS_PA_131
 WebServicesManager		WPS_PA_133			/wps/WPS_PA_133	


Updating the  File Serving Enabling attribute to FALSE : 
There are several ways you can change your deployed web module FileServingEnabled attribute.  Firstly, you can update your installable files and redeploy them into WebSphere.  Secondly, using the Application Assembly Tool (AAT) tool, you can change the expanded EAR file directly from the installed file.

Regarding the web modules that are installed with WebSphere Portal Server 4.1, the installed file is located as follow : 

WEB MODULE NAME:		DEPLOYED LOCATION:
WPS Enterprise Application 		e:/WebSphere/PortalServer/app/wps.ear/		
 PortletInstaller			e:/WebSphere/AppServer/installedApps/WPS_PA_101.ear/
 CustomizePortlets			e:/WebSphere/AppServer/installedApps/WPS_PA_103.ear/
 SelectorPortlet			e:/WebSphere/AppServer/installedApps/WPS_PA_105.ear/
 CredentialAdministration		e:/WebSphere/AppServer/installedApps/WPS_PA_107.ear/
 WebServicesAdministration		e:/WebSphere/AppServer/installedApps/WPS_PA_109.ear/
 Settings				e:/WebSphere/AppServer/installedApps/WPS_PA_111.ear/
 MarkupsManager			e:/WebSphere/AppServer/installedApps/WPS_PA_113.ear/
 UsersManager			e:/WebSphere/AppServer/installedApps/WPS_PA_115.ear/	
 PortletManagementPortlets		e:/WebSphere/AppServer/installedApps/WPS_PA_117.ear/
 Tracing				e:/WebSphere/AppServer/installedApps/WPS_PA_119.ear/
 GroupsManager			e:/WebSphere/AppServer/installedApps/WPS_PA_121.ear/
 SearchPortlets			e:/WebSphere/AppServer/installedApps/WPS_PA_123.ear/
 ClippingPortlets			e:/WebSphere/AppServer/installedApps/WPS_PA_125.ear/
 ClientsManager			e:/WebSphere/AppServer/installedApps/WPS_PA_127.ear/
 AccessControl			e:/WebSphere/AppServer/installedApps/WPS_PA_129.ear/
 WelcomePortlet			e:/WebSphere/AppServer/installedApps/WPS_PA_131.ear/
 WebServicesManager		e:/WebSphere/AppServer/installedApps/WPS_PA_133.ear/	


Using the locations above, open the Application Assembly Tool.  Choose the EXISTING tab and point to the EAR location listed above.  Select the <name of the web module> and in the right panel choose the IBM EXTENSIONS tab.  From the IBM EXTENSIONS tab, uncheck the attribute File Serving Enabled.  APPLY the changes  and SAVE  the file.  The changes should directly take place in the expanded EAR location.  Complete these tasks for each of the web module.

Applying the Changes to the IBM HTTP SERVER Plug-In:
After changing the attributes for each web module, you must regenerate the webserver plug-in.  To do so, right-click on the admin node name and choose Regen Webserver Plugin.  The plugin file
(plugin-cfg.xml) is kept in the <WAS ROOT>\config directory.

To verify that the attribute changes and the plugin regeneration were successful, verify through inspection of the plugin config file and the ibm-web-ext.xmi files.

WebServer Plugin :   If the file serving attribute was set to false correctly,  the plugin file will detail all of the files that will bypass the webserver as opposed to a single wildcard statement that states that all files are bypassed via the webserver.  For example, the following is a clipping of a web module which has fileServingEnabled to true.

   <UriGroup Name="WPS Enterprise Application/wps.war_URIs">
        <Uri Name="/wps/*"/>
    </UriGroup>

clipping of  the same web module with fileServingEnabled to false : 
<UriGroup Name="WPS Enterprise Application/wps.war_URIs">
        <Uri Name="/wps/portal/*"/>
        <Uri Name="/wps/myportal/*"/>
        <Uri Name="/wps/config/*"/>
        <Uri Name="/wps/rpiinfo/*"/>
        <Uri Name="/wps/rpirouter/*"/>
        <Uri Name="/wps/proxyportlet/*"/>
        <Uri Name="/wps/*.jsp"/>
        <Uri Name="/wps/*.jsv"/>
        <Uri Name="/wps/*.jsw"/>
        <Uri Name="/wps/j_security_check"/>
    </UriGroup>


IBM-WEB-EXT.XMI :
 From the  <location of expanded EAR file >\<name of WAR file>\WEB-INF\ directory, view the ibm-web-ext.xmi file.  (For example,  e:\WebSphere\AppServer\installedApps\WPS_PA_101.ear\PortletInstaller.war\WEB-NF\ibm-web-ext.xmi)  

<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmlns:webapplication="webapplication.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="PortletInstaller_1_Ext" reloadInterval="3" reloadingEnabled="true" fileServingEnabled="false" directoryBrowsingEnabled="true" serveServletsByClassnameEnabled="false" preCompileJSPs="false">
  <defaultErrorPage xsi:nil="true"/>
  <additionalClassPath xsi:nil="true"/>
  <webApp href="WEB-INF/web.xml#PortletInstaller_1"/>
</webappext:WebAppExtension>





Creating Aliases in the IBM HTTP Server webserver : 

Now, that File Serving Enabled through the fileServing servlet is set to false, all static content will bypass the servlet and will be serve elsewhere.  Using the alias rules in the webserver,  you must tell the webserver what static content to serve, essentially the document root for each web module.  An alias is needed for each deployed web module location.  Below, is the list of aliases needed for the web modules deployed in WebSphere Portal Server 4.1.

From the IBM HTTP Server httpd.conf config file : 
Alias /wps/WPS_PA_101/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_101.ear/PortletInstaller.war/"
Alias /wps/WPS_PA_103/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_103.ear/CustomizerPortlets.war/"
Alias /wps/WPS_PA_105/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_105.ear/SelectorPortlet.war/"
Alias /wps/WPS_PA_107/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_107.ear/CredentialAdministration.war/"
Alias /wps/WPS_PA_109/	 e:/WebSphere/AppServer/installedApps/WPS_PA_109.ear/WebServicesAdministration.war/"
Alias /wps/WPS_PA_111/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_111.ear/Settings.war/"
Alias /wps/WPS_PA_113/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_113.ear/MarkupsManager.war/"
Alias /wps/WPS_PA_115/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_115.ear/UsersManager.war/"
Alias /wps/WPS_PA_117/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_117.ear/PorletManagementPortlets.war/"
Alias /wps/WPS_PA_119/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_119.ear/Tracing.war/"
Alias /wps/WPS_PA_121/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_121.ear/GroupsManager.war/"
Alias /wps/WPS_PA_123/	"e:/WebSphere/AppServer/installedApps/WPS_PA_123.ear/SearchPortlets.war/"
Alias /wps/WPS_PA_125/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_125.ear/ClippingPortlets.war/"
Alias /wps/WPS_PA_127/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_127.ear/ClientsManager.war/"
Alias /wps/WPS_PA_129/ 	"e:/WebSphere/AppServer/installedApps/WPS_PA_129.ear/AccessControl.war/"
Alias /wps/WPS_PA_131/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_131.ear/WelcomePortlet.war/"
Alias /wps/WPS_PA_133/	 "e:/WebSphere/AppServer/installedApps/WPS_PA_133.ear/WebServicesManager.war/"
Alias /wps/		 "e:/WebSphere/PortalServer/app/wps.ear/wps.war/"

