クライアント(Webブラウザ)から指定されたURLを書き換える設定は、変換種別などにより、いくつかの方法があります。Webサーバの運用方法に応じて設定してください。
変換種別の機能概要、その変換種別に対する設定可否・設定方法について、以下に説明します。
■変換種別の機能概要
内部リダイレクト
内部リダイレクトは、URL内のパスを書き換える場合に使用します。
内部リダイレクトの処理の流れを以下に示します。
クライアント(Webブラウザ)は、URLを指定してWebサーバにアクセス要求を行います。
Webサーバは、クライアント(Webブラウザ)からのリクエストがURL書換え条件を満たしているかを判定します。条件を満たしている場合は、URLを変換し、変換後のURLに対する応答をクライアント(Webブラウザ)に返却します。
外部リダイレクト
外部リダイレクトは、URLを新しいURLに書き換える場合に使用します。
外部リダイレクトの処理の流れを以下に示します。
クライアント(Webブラウザ)は、URLを指定してWebサーバにアクセス要求を行います。
Webサーバは、クライアント(Webブラウザ)からのリクエストがURL書換え条件を満たしているかを判定します。条件を満たしている場合は、Locationヘッダに変換後のURLを設定してステータスコード「302」(Moved Temporarily)で応答します。
注意
ステータスコードは、設定により「301」(Moved Permanently)または「303」(See Other)で応答することもできます。
クライアント(Webブラウザ)は、Locationヘッダに設定されたURLを指定し、再度、Webサーバにアクセス要求を行います。
Webサーバは、クライアント(Webブラウザ)からのリクエストに対する応答をクライアント(Webブラウザ)に返却します。
リバースプロキシ
リダイレクトを使用せずに、URLを変換したリクエストを同一のWebサーバで処理させる場合、リバースプロキシサーバとWebサーバを1つのWebサーバ上で運用します。
リバースプロキシによる処理の流れを以下に示します。
クライアント(Webブラウザ)は、URLを指定してリバースプロキシサーバにアクセス要求を行います。
リバースプロキシサーバは、クライアント(Webブラウザ)からのリクエストがURL書換え条件を満たしているかを判定します。条件を満たしている場合は、URLを変換したリクエストをWebサーバに転送します。
Webサーバは、URLを変換したリクエストに対する応答をリバースプロキシサーバに返却します。
リバースプロキシサーバは、Webサーバから受け取った応答をクライアント(Webブラウザ)に返却します。
アクセス拒否
クライアント(Webブラウザ)からのリクエストがアクセス拒否条件を満たしている場合は、アクセスを拒否します。
アクセス拒否の処理の流れを以下に示します。
クライアント(Webブラウザ)は、URLを指定してWebサーバにアクセス要求を行います。
Webサーバは、クライアント(Webブラウザ)からのリクエストがアクセス拒否条件を満たしているかを判定します。条件を満たしている場合は、ステータスコード「403」(Forbidden)で応答してアクセスを拒否します。
■変換種別に対する設定可否・設定方法
URL書換えを設定する場合は、以下の表で変換種別に対する設定可否を確認し、設定可である場合は、それぞれの設定方法を参考にして環境定義ファイル(httpd.conf)を編集してください。
変換種別 | リクエストの通信種別 | 変換後のURL | 設定可否 | 設定方法 | ||
---|---|---|---|---|---|---|
内部リダイレクト | SSL未使用 | SSL未使用 | 仮想ディレクトリ | 静的コンテンツへのパス | 設定可 | |
CGIプログラムへのパス | 設定可 | |||||
Servletサービスのアプリケーションへのパス | 設定不可 | - | ||||
リライト機能 | 静的コンテンツへのパス | 設定可 | ||||
CGIプログラムへのパス | 設定可 | |||||
Servletサービスのアプリケーションへのパス | 設定不可 | 代替方法: | ||||
SSL使用 | 設定不可 | - | ||||
SSL使用 | SSL未使用 | 設定不可 | 代替方法: | |||
SSL使用 | 仮想ディレクトリ | 静的コンテンツへのパス | 設定可 | |||
CGIプログラムへのパス | 設定可 | |||||
Servletサービスのアプリケーションへのパス | 設定不可 | - | ||||
リライト機能 | 静的コンテンツへのパス | 設定可 | ||||
CGIプログラムへのパス | 設定可 | |||||
Servletサービスのアプリケーションへのパス | 設定不可 | - | ||||
外部リダイレクト | SSL未使用/SSL使用 | SSL未使用 | リダイレクト機能 | 静的コンテンツへのパス | 設定可 | |
CGIプログラムへのパス | ||||||
Servletサービスのアプリケーションへのパス | ||||||
リライト機能 | 静的コンテンツへのパス | 設定可 | ||||
CGIプログラムへのパス | ||||||
Servletサービスのアプリケーションへのパス | ||||||
SSL使用 | リダイレクト機能 | 静的コンテンツへのパス | 設定可 | |||
CGIプログラムへのパス | ||||||
Servletサービスのアプリケーションへのパス | ||||||
リライト機能 | 静的コンテンツへのパス | 設定可 | ||||
CGIプログラムへのパス | ||||||
Servletサービスのアプリケーションへのパス | ||||||
リバースプロキシ | SSL未使用/SSL使用 | SSL未使用 | リライト機能 | 静的コンテンツへのパス | 設定可 | |
CGIプログラムへのパス | ||||||
Servletサービスのアプリケーションへのパス | ||||||
SSL使用 | 設定不可 | - | ||||
アクセス拒否 | SSL未使用/SSL使用 | SSL未使用/SSL使用 | 設定可 |
設定方法1
指定した仮想ディレクトリ「URLパス」/「URLパターン」を、静的コンテンツへのパス「ファイルパス」/「ディレクトリパス」に内部リダイレクトする場合、以下のどちらかの方法で設定します。
Alias URLパス ファイルパス|ディレクトリパス
AliasMatch URLパターン ファイルパス|ディレクトリパス
設定方法2
指定した仮想ディレクトリ「URLパス」/「URLパターン」を、CGIプログラムへのパス「ファイルパス」/「ディレクトリパス」に内部リダイレクトする場合、以下のどちらかの方法で設定します。
LoadModule cgi_module "C:/Interstage/F3FMahs/modules/mod_cgi.so" ScriptAlias URLパス ファイルパス|ディレクトリパス
LoadModule cgi_module "C:/Interstage/F3FMahs/modules/mod_cgi.so" ScriptAliasMatch URLパターン ファイルパス|ディレクトリパス
LoadModule cgid_module "/opt/FJSVahs/modules/mod_cgid.so" ScriptAlias URLパス ファイルパス|ディレクトリパス
LoadModule cgid_module "/opt/FJSVahs/modules/mod_cgid.so" ScriptAliasMatch URLパターン ファイルパス|ディレクトリパス
注意
CGIプログラム実行の設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
設定方法3
指定した「URLパターン」の書換え条件を満たすリクエストを、静的コンテンツへのパスに内部リダイレクトする場合、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン '/'から始まるパス
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン '/'から始まるパス
RewriteCondディレクティブを使用して書換え条件を追加する場合は、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン '/'から始まるパス
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン '/'から始まるパス
注意
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法4
指定した「URLパターン」の書換え条件を満たすリクエストを、CGIプログラムへのパスに内部リダイレクトする場合、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン '/'から始まるパス [PT]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン '/'から始まるパス [PT]
RewriteCondディレクティブを使用して書換え条件を追加する場合は、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン '/'から始まるパス [PT]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン '/'から始まるパス [PT]
注意
CGIプログラムへのパスにリダイレクトする場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法5
指定した「URL」/「URLパターン」を、静的コンテンツ/Servletサービスのアプリケーション/CGIプログラムへのパスに外部リダイレクトする場合、以下のどちらかの方法で設定します。
Redirect URL "http://"から始まるパス
RedirectMatch URLパターン "http://"から始まるパス
注意
CGIプログラムへのパスにリダイレクトする場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法6
指定した「URLパターン」の書換え条件を満たすリクエストを、静的コンテンツ/Servletサービスのアプリケーション/CGIプログラムへのパスに外部リダイレクトする場合、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン "http://"から始まるパス [R]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン "http://"から始まるパス [R]
RewriteCondディレクティブを使用して書換え条件を追加する場合は、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "http://"から始まるパス [R]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "http://"から始まるパス [R]
注意
CGIプログラムへのパスにリダイレクトする場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法7
指定した「URL」/「URLパターン」を、静的コンテンツ/Servletサービスのアプリケーション/CGIプログラムへのパスに外部リダイレクトする場合、以下のどちらかの方法で設定します。
Redirect URL "https://"から始まるパス
RedirectMatch URLパターン "https://"から始まるパス
注意
CGIプログラムへのパスにリダイレクトする場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法8
指定した「URLパターン」の書換え条件を満たすリクエストを、静的コンテンツ/Servletサービスのアプリケーション/CGIプログラムへのパスに外部リダイレクトする場合、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン "https://"から始まるパス [R]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン "https://"から始まるパス [R]
RewriteCondディレクティブを使用して書換え条件を追加する場合は、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "https://"から始まるパス [R]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "https://"から始まるパス [R]
注意
CGIプログラムへのパスにリダイレクトする場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法9
指定した「URLパターン」の書換え条件を満たすリクエストをプロキシ要求とみなし、静的コンテンツ/Servletサービスのアプリケーション/CGIプログラムへのパスに変換してWebサーバに転送する場合、以下の方法で設定します。
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 URLパターン "http://"から始まるパス [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 URLパターン "http://"から始まるパス [P]
RewriteCondディレクティブを使用して書換え条件を追加する場合は、以下の方法で設定します。
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 RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "http://"から始まるパス [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 RewriteCond テスト文字列 条件パターン RewriteRule URLパターン "http://"から始まるパス [P]
注意
CGIプログラムへのパスに変換する場合は、CGIプログラム実行の許可も設定する必要があります。設定方法については、「3.28 CGIプログラム実行許可の設定」を参照してください。
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
設定方法10
指定した「URLパターン」の条件を満たすリクエストを、ステータスコード「403」(Forbidden)で応答してアクセスを拒否する場合、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン - [F]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteRule URLパターン - [F]
RewriteCondディレクティブを使用して条件を追加する場合は、以下の方法で設定します。
LoadModule rewrite_module "C:/Interstage/F3FMahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン - [F]
LoadModule rewrite_module "/opt/FJSVahs/modules/mod_rewrite.so" RewriteEngine On RewriteCond テスト文字列 条件パターン RewriteRule URLパターン - [F]
注意
Servletサービスのアプリケーションに対するリクエストを書き換える場合は、上記のディレクティブを<Location>セクションの中に設定してください。
参考
関連ディレクティブ
Alias
AliasMatch
<Location>
Redirect
RedirectMatch
ScriptAlias
ScriptAliasMatch