Versions Compared

Key

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

...

Apache

...

Wiki MarkupApache サーバーでは、書き換えディレクティブを使用して URL 操作を行う強力な方法が提供されます。

詳細は、Apache HTTP サーバー・バーション 2.4 の「&<a href=" target="_blank"&>http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html"Apache モジュール mod_rewrite&</a&>」を参照してください。 以下の例は、これらの書き換えディレクティブの使用方法を示しています。 例 1 」を参照してください。

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

例 1

書き換え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 をチェックして、& 以外の値をすべてパラメータ化します。

条件が真の場合、次の RewriteRule を実行します。真でなければこのルールはスキップされ、他のルールが実行されます。          注:を実行します。真でなければこのルールはスキップされ、他のルールが実行されます。

Info

注:

  • RewriteRule ディレクティブでクエリー文字列は使用できません。 クエリー文字列は、mod_rewriteがディレクトリごとのコンテキストで有効になるまでにquery_string環境変数に移動しています。
  • RewriteCondは、その後の最初のRewriteRuleにのみ有効です。 以降のRewriteRuleには適用されないため、%1の後方参照は、2番目、3番目、以降のRewriteRuleに対して未定義になります。

...

...

2

書き換え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>

...