Interstage HTTP Server 運用ガイド
目次 索引 前ページ次ページ

第3章 環境設定> 3.2 環境定義ファイル

3.2.12 リライト機能の設定

 リライト機能は、環境定義ファイル(httpd.conf)において、URLを書き換える条件および書き換えのルールを正規表現で設定し、その書き換え条件やルールを満たしている場合にURLを書き換えます。
 リライト機能の設定例を以下に示します。

クライアントのIPアドレスによりURLを書き換える場合


 クライアントのIPアドレスが“192.168.0.”で始まる場合、URLを“/ext”に内部リダイレクトする

LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REMOTE_ADDR} ^192\.168\.0\.
RewriteRule   ^/(.*)$ /ext/$1

LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REMOTE_ADDR} ^192\.168\.0\.
RewriteRule   ^/(.*)$ /ext/$1

リクエストURLの否定条件によりURLを書き換える場合


 Webブラウザ(クライアント)から先頭文字列が“/somepath”ではないURLが指定された場合、URLを“otherhost”に外部リダイレクトする

LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REQUEST_URI} !^/somepath
RewriteRule   ^/(.*)$ http://otherhost/$1

LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REQUEST_URI} !^/somepath
RewriteRule   ^/(.*)$ http://otherhost/$1

リクエストメソッドの種類によりアクセスを禁止する場合


 HEADメソッドまたはOPTIONSメソッドのリクエストを受け付けた場合、ステータスコード“403”(Forbidden)で応答する

LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REQUEST_METHOD} ^(HEAD|OPTIONS)$
RewriteRule   .* - [F]

LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{REQUEST_METHOD} ^(HEAD|OPTIONS)$
RewriteRule   .* - [F]

ブラウザの種類により異なるページを表示する場合


 アクセスされたWebブラウザの種類により、異なるページを表示する
 − Internet Explorerの場合:ファイル名に“-i”を付加したhtmlページ
 − Internet Explorer以外の場合:ファイル名に“-o”を付加したhtmlページ

LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{HTTP_USER_AGENT} .*MSIE.*
RewriteRule   ^/(.*)\.html /$1-i.html [L]
RewriteRule   ^/(.*)\.html /$1-o.html [L]

LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

RewriteEngine On
RewriteCond   %{HTTP_USER_AGENT} .*MSIE.*
RewriteRule   ^/(.*)\.html /$1-i.html [L]
RewriteRule   ^/(.*)\.html /$1-o.html [L]

ServletサービスのアプリケーションのURLをリダイレクトする場合


 Webブラウザ(クライアント)からServletサービスのアプリケーション識別子“sample1”のURLが指定された場合、URLを“sample2”に外部リダイレクトする
注)RewriteRuleディレクティブで評価されるURLは、<Location>セクションで指定したURL“/sample1/”を除いた部分になります。

LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

<Location /sample1/>
    RewriteEngine On
    RewriteRule   ^(.*)$ /sample2/$1 [R]
</Location>

LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

<Location /sample1/>
    RewriteEngine On
    RewriteRule   ^(.*)$ /sample2/$1 [R]
</Location>

書き換えたURLをプロキシ要求として動作させる場合


 Webブラウザ(クライアント)から先頭文字列が“/info/”のURLが指定された場合、プロキシ要求とみなし、“originhost”にリクエストを転送する
注)URLが“/info”の場合は、URLを“/info/”に書き換えた後、プロキシ動作を実行します。
  “https”は、転送するリクエストに指定できません。

LoadModule rewrite_module       "C:/Interstage/F3FMihs/modules/mod_rewrite.so"
LoadModule proxy_module         "C:/Interstage/F3FMihs/modules/mod_proxy.so"
LoadModule proxy_connect_module "C:/Interstage/F3FMihs/modules/mod_proxy_connect.so"
LoadModule proxy_http_module    "C:/Interstage/F3FMihs/modules/mod_proxy_http.so"

RewriteEngine On
RewriteRule   ^/info$ /info/
RewriteRule   ^/info/(.*)$ http://originhost/info/$1 [P]

LoadModule rewrite_module       "/opt/FJSVihs/modules/mod_rewrite.so"
LoadModule proxy_module         "/opt/FJSVihs/modules/mod_proxy.so"
LoadModule proxy_connect_module "/opt/FJSVihs/modules/mod_proxy_connect.so"
LoadModule proxy_http_module    "/opt/FJSVihs/modules/mod_proxy_http.so"

RewriteEngine On
RewriteRule   ^/info$ /info/
RewriteRule   ^/info/(.*)$ http://originhost/info/$1 [P]

書き換えたURLでCGIを実行させる場合


 Webブラウザ(クライアント)からファイル名の拡張子“cgi”のURLが指定された場合、/cgi-bin配下のCGIを実行する

LoadModule cgi_module     "C:/Interstage/F3FMihs/modules/mod_cgi.so"
LoadModule rewrite_module "C:/Interstage/F3FMihs/modules/mod_rewrite.so"

ScriptAlias   /cgi-bin/ "C:/Interstage/F3FMihs/servers/FJapache/cgi-bin/"
RewriteEngine On
RewriteRule   ^/(.+\.cgi)$ /cgi-bin/$1 [PT]

LoadModule cgi_module     "/opt/FJSVihs/modules/mod_cgi.so"
LoadModule rewrite_module "/opt/FJSVihs/modules/mod_rewrite.so"

ScriptAlias   /cgi-bin/ "/opt/FJSVihs/servers/FJapache/cgi-bin/"
RewriteEngine On
RewriteRule   ^/(.+\.cgi)$ /cgi-bin/$1 [PT]

関連ディレクティブ

LoadModule
<Location>
RewriteCond
RewriteEngine
RewriteRule
ScriptAlias


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED