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

3.14 リライト機能の設定

リライト機能は、Rewrite関連のディレクティブを使用して、URLを書き換える条件および書換えのルールを正規表現で設定します。本設定により、書換え条件やルールを満たしている場合にURLを書き換えます。

書換え条件やルールに応じた設定例を以下に示します。


注意

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

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

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


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

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

LoadModule rewrite_module "/opt/FJSVahs/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/F3FMahs/modules/mod_rewrite.so"

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

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

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

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

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


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

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

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

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

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

アクセスされたWebブラウザの種類により、異なるページを表示します。

  • ChromiumベースのMicrosoft Edgeの場合:ファイル名に「-e」を付加したhtmlページ

  • ChromiumベースのMicrosoft Edge以外の場合:ファイル名に「-o」を付加したhtmlページ


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

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

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

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

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

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


LoadModule rewrite_module       "C:/Interstage/F3FMahs/modules/mod_rewrite.so"
LoadModule proxy_module         "C:/Interstage/F3FMahs/modules/mod_proxy.so"
LoadModule proxy_http_module    "C:/Interstage/F3FMahs/modules/mod_proxy_http.so"

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

LoadModule rewrite_module       "/opt/FJSVahs/modules/mod_rewrite.so"
LoadModule proxy_module         "/opt/FJSVahs/modules/mod_proxy.so"
LoadModule proxy_http_module    "/opt/FJSVahs/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/F3FMahs/modules/mod_cgi.so"
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so"

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

LoadModule cgid_module     "/opt/FJSVahs/modules/mod_cgid.so"
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so"

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

参考

関連ディレクティブ