Versions Compared

Key

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

...

詳細は、Apache HTTP サーバー・バーション 2.4 の「&<a href=" target="_blank"&>http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html"Apache モジュール mod_rewrite&</a&>」を参照してください。」を参照してください。

以下の例は、これらの書き換えディレクティブの使用方法を示しています。

...

書き換えURL:"/myservice.jsp?request=xml&service=neworder" を "/cgi-bin/jsmdirect?neworder" に

サンプル URL: URL: http://10.2.0.170:1099/myservice.jsp?request=xml&service=neworder

URL にサービス名と値のペアが含まれる場合、/cgi-bin/jsmdirect?<値> が呼び出されます。それ以外の場合は、が呼び出されます。
それ以外の場合は、/cgi-bin/jsmdirect?default が呼び出されます。

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

RewriteCond は、service= の QUERY_STRING をチェックして、& 以外の値をすべてパラメータ化します。

...

書き換えURL:" /myservice.jsp?type=2&msgid=AXD&status=NEW" を "/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] 

例 3

書き換えURL:"/parts/00345" を "/cgi-bin/jsmdirect?orderbind+id(00345)" に

サンプル URL: http://10.2.0.170:1099/parts/00345

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

例 4

書き換えURL:"/parts/00345/abc" を "/cgi-bin/jsmdirect?orderbind+id(00345)+item(abc)" に

サンプル URL: http://10.2.0.170:1099/parts/00345/abc

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

Apache 構成ファイルのサンプル

Code Block
# Apache 構成 - JSM サービス

...


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
#
# 名前ベースの仮想ホスティングを使用
NameVirtualHost 10.2.0.170

...


#
<VirtualHost 10.2.0.

...

170>
  # 最初の仮想ホストのディレクティブがデフォルトのホスト
  # これにより、サポートされない、またはホスト名がない IP アドレスの使用を防ぐ
  # ドキュメントのルート・ディレクトリにアクセス権なし
  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
    # 有効なユーザーが必須
    # 認証タイプ Basic
    # 認証名"Restricted Service"
    # ユーザーID QTMHHTP1
    # パスワード・ファイル %%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"
    # ユーザーID 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>

...


#

...


# グローバル・サーバー・ディレクティブ

...


#

...


<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>