Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Rewrite URL: "/myservice.jsp?request=xml&service=neworder" to "/cgi-bin/jsmdirect?neworder"

Sample URL: http://10.2.0.170:1099/myservice.jsp?request=xml&service=neworder

If the URL contains a service name value pair then /cgi-bin/jsmdirect?<value> is called else /cgi-bin/jsmdirect?default is call.


RewriteCond %{QUERY_STRING} service\=([^\&]+)
RewriteRule ^/myservice.jsp(.*) /cgi-bin/jsmdirect?%1 [L,PT]
RewriteRule ^/myservice.jsp(.*) /cgi-bin/jsmdirect?default [L,PT]

...

Info
  • Query string is not available to the RewriteRule directive.
    It has already been moved to the query_string environment variable by the time mod_rewrite is activated in a per-directory context.

  • RewriteCond is only good for the first RewriteRule which follows it.
    It does not apply to subsequent RewriteRules, so the %1 backreference becomes undefined for the second, third, and other RewriteRules.

Example 2

Rewrite URL: " /myservice.jsp?type=2&msgid=AXD&status=NEW" to "/cgi-bin/jsmdirect?myservice+type(2)msgid(AXD)+status(NEW)"

    RewriteRule ^/myservice.jsp /myservice.jsp/%{QUERY_STRING} [C]
RewriteRule ^/myservice.jsp/type=([^\&]+)&msgid=([^\&]+)&status=([^\&]+) \
     /cgi-bin/jsmdirect?myservice+type($1)+msgid($2)+status($3) [L,PT]

...

Rewrite URL: "/parts/00345" to "/cgi-bin/jsmdirect?orderbind+id(00345)"

Sample URL: http://10.2.0.170:1099/parts/00345

    RewriteRule ^/parts/(.*) /cgi-bin/jsmdirect?orderbind+id($1) [L,PT]

...

Rewrite URL: "/parts/00345/abc" to "/cgi-bin/jsmdirect?orderbind+id(00345)+item(abc)"

Sample URL: http://10.2.0.170:1099/parts/00345/abc

    RewriteRule ^/parts/(.*)/(.*) /cgi-bin/jsmdirect?orderbind+id($1)+item($2) [L,PT]

Sample Apache configuration file

...

    # Apache Configuration - JSM Services

...


Options None

...


Listen 10.2.0.170:1099

...


ServerRoot /www/jsmapache

...


DocumentRoot /www/jsmapache/htdocs

...


# DefaultFsCCSID  37
# DefaultNetCCSID 819

...


# ServerUserID USERPROFILE

...


#
LogLevel Warn

...


LogCycle Daily

...


ErrorLog logs/error_log

...


CustomLog logs/access_log combined

...


LogFormat "%{User-agent}i" agent

...


LogFormat "%{Referer}i -> %U" referer

...


LogFormat "%{Cookie}n \"%r\" %t" cookie

...


LogFormat "%h %l %u %t \"%r\" %>s %b" common

...


LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

...


#
# StartCGI 1

...


# SendBufferSize 32768

...


# ReceiveBufferSize 32768

...


#
# Use name-based virtual hosting

...


NameVirtualHost 10.2.0.170

...


#
<VirtualHost 10.2.0.170>

...


# The first virtual host directive will become the default host

...


# This traps the use of the IP address, unsupported or no host name

...


# It also has no authority to access the document root directory

...


Options None

...


ServerName 10.2.0.170

...


DocumentRoot /www/jsmapache/htdocs

...


</VirtualHost>

...


#
<VirtualHost 10.2.0.170>

...


Options None

...


ServerName SERVER1

...


ServerAlias SERVER1.ACME.COM.AU

...


DocumentRoot /www/jsmapache/htdocs-site1

...


CGIConvMode BINARY

...


ErrorDocument 403 /noaccess.html

...


ErrorDocument 404 /notfound.html

...


ScriptAliasMatch ^/cgi-bin/jsmproxy(.*) /qsys.lib/devjsm.lib/jsmproxy.pgm$1

...


ScriptAliasMatch ^/cgi-bin/jsmdirect(.*) /qsys.lib/devjsm.lib/jsmdirect.pgm$1

...


ScriptAliasMatch ^/cgi-sec/jsmdirect(.*) /qsys.lib/secure.lib/jsmdirect.pgm$1

...


TimeOut 3000

...


#

...


RewriteEngine On

...


# RewriteLog rewrite-site1.log

...


# RewriteLogLevel 9

...


#

...


RewriteCond %{REQUEST_METHOD} ^TRACE

...


RewriteRule .* - [L,F]

...


#

...


RewriteRule ^/parts/(.*)/(.*) /cgi-sec/jsmdirect?orderbind+id($1)+item($2) [L,PT]

...


RewriteRule ^/parts/(.*) /cgi-bin/jsmdirect?orderbind+id($1) [L,PT]

...


RewriteRule ^/parts /cgi-bin/jsmdirect?orderbind+id(*NONE) [L,PT]

...


#

...


RewriteCond %{QUERY_STRING} service\=([^\&]+)

...


RewriteRule ^/myservice(.*) /cgi-bin/jsmdirect?%1 [L,PT]

...


RewriteRule ^/myservice(.*) /cgi-bin/jsmdirect?default [L,PT]

...


#

...


RewriteCond %{TIME_HOUR}%{TIME_MIN} >0905

...


RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900

...


RewriteRule ^/mypage.html /day.html [L]

...


RewriteRule ^/mypage.html /night.html [L]

...


#

...


# RewriteCond %{TIME_HOUR}%{TIME_MIN} <1300 [OR]

...


# RewriteCond %{TIME_HOUR}%{TIME_MIN} >1500

...


# RewriteRule ^/cgi-bin/jsmdirect(.*) /noaccess.html [L]

...


#

...


# RewriteMap companymap txt:/www/jsmapache/company.map

...


# RewriteRule ^/company/(.*) ${companymap:$1|http://nocompany.com} [L,R]

...


#

...


# RewriteMap hostmap rnd:/www/jsmapache/randomhost.map

...


# RewriteRule ^/(.*\.(pdf|gif|jpg)) http://${hostmap:static}/$1 [L,R]

...


#

...


<Directory /www/jsmapache/htdocs-site1>

...


   Options None

...


   Order Allow,Deny

...


   Allow from all

...


   AllowOverride None

...


</Directory>

...


#

...


<Directory /qsys.lib/devjsm.lib>

...


   Options None

...


   Order Allow,Deny

...


   Allow from all

...


   AllowOverride None

...


   # Require valid-user

...


   # AuthType Basic

...


   # AuthName "Restricted Service"

...


   # UserID QTMHHTP1

...


   # PasswdFile %%SYSTEM%%

...


</Directory>

...


#

...


<Directory /qsys.lib/secure.lib>

...


   Options None

...


   Order Allow,Deny

...


   Allow from all

...


   AllowOverride None

...


   Require valid-user

...


   AuthType Basic

...


   AuthName "Restricted Service"

...


   # UserID QTMHHTP1

...


   PasswdFile %%SYSTEM%%

...


</Directory>

...


</VirtualHost>

...


#
<VirtualHost 10.2.0.170>

...


Options None

...


ServerName STUDIOADMIN

...


DocumentRoot /www/jsmapache/htdocs-site2

...


CGIConvMode BINARY

...


ScriptAliasMatch ^/cgi-bin/jsmadmin(.*) /qsys.lib/devjsm.lib/jsmadmin.pgm$1

...


#

...


<Directory /www/jsmapache/htdocs-site2>

...


   Options None

...


   Order Allow,Deny

...


   Allow from all

...


   AllowOverride None

...


</Directory>

...


#

...


<Directory /qsys.lib/devjsm.lib>

...


   Options None

...


   Order Allow,Deny

...


   Allow from 10.2.1.46

...


   Allow from 10.2.1.47

...


   Allow from 10.2.1.48

...


   AllowOverride None

...


</Directory>

...


</VirtualHost>

...


#
# Global server directives

...


#
<Directory />

...


Options None

...


Order Allow,Deny

...


Deny from all

...


AllowOverride None

...


</Directory>

...


#
<Directory /www/jsmapache/htdocs>

...


Options None

...


Order Allow,Deny

...


Deny from all

...


AllowOverride None

...


</Directory>