プロが教えるわが家の防犯対策術!

あるサイトでhtmlで書かれていたものをphpを利用するため●●.phpに変更しました。

.htaccessで301リダイレクトの設定をしようと考えているのですが、正規表現の仕方が分かりません。
下記の場合どのような書き方をすればよろしいでしょうか?
リダイレクト文含め解説も入れていただけたら幸いです。
よろしくお願いします。


http://www.zzz.com/okinawa/test1.html → http://www.zzz.com/okinawa/test1.php
http://www.zzz.com/okinawa/testdetail1.html → http://www.zzz.com/okinawa/test1.php
http://www.zzz.com/kagoshima/test1.html → http://www.zzz.com/okinawa/test1.php
http://www.zzz.com/kagoshima/testdetail1.html → http://www.zzz.com/okinawa/test1.php

http://www.zzz.com/●●/▲1.html

※●●は都道府県毎のディレクトリで47あります。
※▲は「test」「testdetail」の2種類のコンテンツがあります。
※1の数字は連番で仮に1~100の100ファイルあります。

A 回答 (1件)

.htaccessが利用できるのでしたら、拡張子HTMLのままでPHPを実行させる方法をとったほうが楽でしたね(苦笑)


サーバによってはできない場合もあるので、一概には言えませんが。

お尋ねの件ですが、都道府県別ディレクトリの中身だけを「*.html」から「*.php」に変更したものとして、次のような方法がでいかがでしょうか。
ささやかですが、サーバへの負荷も軽くなります。

---- .htaccess の内容 ----

RedirectMatch 301 (.*)\.html$ http://www.zzz.com/●●/$1.php

--------------------------

「●●」の部分には都道府県のディレクトリ名を入れてください。「okinawa」とか「tokyo」とかですね。
この.htaccessファイルを都道府県ごとに用意して、それぞれのディレクトリにアップロードしてください。
この方法だと、記述に間違いがあってもサイト全体が閲覧不可になることはありませんので。
それでも念のため、テスト用ディレクトリを作って、そこで動作確認してください。

.htaccessの内容は、先頭から

 1.リダイレクトのコードは何か(RedirectMatch)
 2.恒久的に移動しました(301)
 3.拡張子htmlで終わるファイルを((.*)\.html$)
 4.このアドレスにリダイレクトする(http://www.zzz.com/●●/$1.php)

3番の拡張子を除いたファイル名が4番の「$1」に入ります。

他には「Mod-Rewrite」を用いた方法もありますが、こちらは正規表現が複雑になりがちです。
複雑にはなりますが、1枚のファイルで済ませることもできます。

とりあえず、簡単な書式を理解して、それから難しいことをすればいいと思います。
参照URLは.htaccessの解説サイトです。わかりやすいですので、参考までに。

参考URL:http://htaccess.pasoa.com/pattern.htm
    • good
    • 0
この回答へのお礼

ありがとうございました!
うまくいきました^^

お礼日時:2014/01/31 13:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!