ページの先頭行へ戻る
Interstage Application Server V12.0.0 Interstage HTTP Server 運用ガイド
FUJITSU Software

3.2.12 リライト機能の設定

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


注意

  • バーチャルホストでは、バーチャルホストごとにリライト機能のディレクティブを設定してください。

  • ServletサービスのアプリケーションのURLに対してリライト機能を設定する場合は、<Location>セクションの中に、リライト機能のディレクティブを設定してください。

  • 書き換えたURLがServletサービスのアプリケーションの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]