携帯電話向けサイトで、「301サイトが移動しました」画面が出ないようにする対策。
www.example.com/content/m
というページを作ったと思ってください。
・ディレクトリの後ろに/をつければ警告出ないよ
というのが定番ですが、URL末尾のスラッシュなしでQRコードを印刷してしまっていて、もう回収不能という状況になったときに切り抜けた方法。
手順1:.htaccessが使えるようにApacheを設定した上で、
手順2:/contentディレクトリに下記内容の.htaccessを作成。
<Files m>
ForceType cgi-script
</Files>
手順3:/contentに、mという名前(拡張子なし)で実コンテンツが出るようなCGIを設置。CGIであれば、このとき忘れず「chmod a+x m」として実行属性をつけること。
以上です。
URL末尾のスラッシュがないと、ApacheはDirectoryモジュールが働いてスラッシュ有りのURLに301でリダイレクトし、その上でコンテンツ出力が走ります。このため、まず301リダイレクトの時点で携帯電話に警告画面が出てしまうわけですね。(スラッシュを末尾につければ「301サイトが〜」を抑制できる理由はまさにこれです)
上記のような手順によって、ディレクトリで無く実体ファイル(CGIとかコンテンツとか)をその名前で置けば、Directoryモジュールは働かないので301リダイレクトはおこなわれず、警告も回避できるというわけです。