十八禁恋愛私花集

サイト管理人用Tips

■ 年齢制限コンテンツを公開するにあたって、知っていると便利な事をいくつかご紹介します。

検索よけ

■ 例えば、調べ物で検索サイトを利用した時に、検索結果の中にR18恋愛創作の濡れ場真っ只中のページが紛れ込んでしまう事があります。
 十八歳未満の方は勿論、性描写を苦手とする方が予備知識も無しにいきなりそんなページを開いてしまうと、余計なトラブルになりかねません。
 
 検索よけについては、色々な方法を解り易く解説しておられるサイトがありますので、詳しくはそちらをご覧ください。
検索避け覚書 管理人:ちくわぶ 様

ディープリンク制限

■ 例えば、どこか知らない掲示板などに、「萌え!」というコメントと一緒に物語のイチバンの濡れ場へのリンクが18禁である説明なしに張られてしまったら。書き込んだ方は善意のオススメ気分でも、十八歳未満や性描写を苦手とする方がクリックすればどうなるか……。
 また、検索よけをした筈なのに、うっかり漏れがあったり、検索ロボットが従ってくれなかったりして、濃厚なシーンが思いっきり検索結果に載ってしまう事もあるかもしれません。
 
 そんな状況を回避する方法の一つとして、.htaccessを利用したディープリンク禁止の方法をご紹介します。

以下の方法は、使い方を誤ればお使いのサーバに多大なる負荷をかける事になってしまいます。充分に理解なさった上で、慎重に、そして自己責任でお使いください。使用した結果どのような問題が生じようと、筆者は責任をとりかねます。

 上でもご紹介した「検索避け覚書」の「.htaccessによる制限」を応用して、自分のサイト以外から作品ページに直接リンクされた場合に、警告のあるトップページを表示させる方法です。出来れば先ず上記サイトを熟読の上、以下を読み進めてください。
 
 仮に、http://this.is.a.sample/ をトップとするサイトがあるとして、解説いたします。

SetEnvIf Referer "^http://this\.is\.a\.sample/" welcome
SetEnvIf Referer "^$" welcome

Order deny,allow
Deny from all
Allow from env=welcome

ErrorDocument 403 /index.html

検索避け覚書」に倣って、口語訳を下に記します。

リンク元が http://this.is.a.sample/ から始まるなら welcome
リンク元が 空白(ブラウザのお気に入りもしくはURL直接入力)なら welcome

禁止→許可 の順番に処理
全てを禁止
welcome を許可

アクセス禁止の際のメッセージに /index.html を表示する

 詳しい事は、「検索避け覚書」や、そこからリンクされている「.htaccess実践活用術」「サルにもわかる正規表現入門」にお譲りするとして、ここでは、最低限の事だけを簡単に説明するにとどめます。
 
 一行目は、「SetEnvIf Referer "○○"」の○○に入った文字列を含むURLを「welcome」と定義する、という意味です。ですから、もしも複数のサーバをお使いの場合は、
 
SetEnvIf Referer "^http://this\.is\.a\.sample/" welcome
SetEnvIf Referer "^http://its\.a\.sample\.etc/" welcome
 
 のように、何行か使って複数のURLを指定する事が出来ます。この時、両者に共通の文字列を使えば、
 
SetEnvIf Referer "\.a\.sample" welcome
 
 という風に一行にまとめる事も出来ますが、そうすれば「http://it.is.a.sample/」みたいに同じ文字列を含む他のURLからのアクセスも許可する事になります。
 ちなみに、URLの先頭についている「^」は、正規表現で「行の先頭」という意味です。これをつけておくと、例えば「http://***.***.***.***/search?q=cache:http://this.is.a.sample/」みたいな、検索サイトのキャッシュなどからのアクセスを制限する事が出来ます。
 また、二行目にある「$」は、同じく正規表現で「行の終わり」という意味です。「^$」と二つを隙間無く並べる事で、「行の先頭と終わりの間に何も文字が無い」=「空白」を表しています。
 URLに挿入されている「\」(日本語フォントでは「円(Yen)マーク」、欧文フォントでは「逆向きのスラッシュ」で表示されます)は、「.(ピリオド)」が正規表現で「任意の一文字」と認識されるのを防ぐためのものです。
 
 最後の行では、アクセスを禁じるエラーメッセージ(403 Forbidden)の代わりに表示するページを指定します。例では「/index.html」のようにルートディレクトリにある index.html ファイルを指定しましたが、他に専用ページを作って、そちらを表示する事も可能です。
 ちなみに、この設定の場合、アクセスを禁じたファイルに外部から直接リンクすれば、表示される内容は index.html となりますが、ブラウザが認識しているURLは元のアクセスされたファイルのままです。index.html から他のページに相対パスでリンクしている場合、index.html から先へのリンクが正しくなされなくなってしまいます。ご注意ください。
 具体的には、下のとおりです。

 上記で例示された設定にて http://this.is.a.sample/page/ 以下がディープリンク制限されている場合。
 外部リンクから http://this.is.a.sample/page/top.html にアクセスすれば、http://this.is.a.sample/index.html の内容がエラーメッセージの代わりに表示されます。
 ところが、ブラウザのアドレス欄は http://this.is.a.sample/page/top.html のまま変わりません。
 結果、http://this.is.a.sample/index.html にて相対パスで指定されていた http://this.is.a.sample/next.html は、実際には存在しない http://this.is.a.sample/page/next.html へのリンクとなり、結果「ファイルが見つかりません」という事となってしまいます。

 エラーメッセージのファイル指定は、無限ループの危険性をはらんでいます。特に、絶対パスで指定してリダイレクトする場合、ループが生じてもサーバがエラーを検出出来ないためとても危険です。ディレクトリ構造をきちんと把握した上で正しく設定してください。
 
■ 以上の技は、 .htaccess やその該当するディレクティブの使用がユーザに許可されていないサーバでは使用出来ません。ご了承ください。また、.htaccess は設定を間違えるとサイトにアクセス出来なくなってしまう事もあるので、「ルートディレクトリって何?」という方にはこの方法はお勧めしません。
 サーバによって細かい設定が違ってきますので、どうかお使いのサーバの説明を良くお読みの上、くれぐれも自己責任でご活用ください。

セルフラベリング(セルフレイティング)

■ フィルタリングソフトに、年齢制限サイトである事を認識してもらい、ブラウズの段階でアクセスを遮断する方法です。
 専門のサイトがありますので、そちらをご覧ください。
 
The Family Online Safety Institute
 → ICRA Tools
 英文サイトです。コンテンツの種類などで細かくラベリングする事が出来ます。
 
財団法人インターネット協会
 → フィルタリング情報ページWebサイト作成者の方へ
 
 また、各種セルフラベリングについて、解りやすい説明をなさっているサイトがあります。ラベリング導入の際の参考にどうぞ。
セルフ・ラベリング推奨委員会