人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

リダイレクトの記述方法について、教えてください。

MovableTypeでブログを作成しています。
そこに新たに「i」というディレクトリを用意して、iPhone専用ページを作成しました。
そのうえで.htaccessファイルには以下のように記述しています。

RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
RewriteRule ^$ i/ [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
RewriteRule ^index\.php$ i/ [L]

これでトップページはうまくリダイレクトできました。
元)http://www.mydomein.jp/
先)http://www.mydomein.jp/i/

しかし個別ページは、もともとMovableTypeの設定で「archive」というディレクトリ内の、
さらに年別・月別ディレクトリに作成しているため、どのように表記すればよいか判りません。
色々と試したのですが、正規表現が判っていないためにうまくリダイレクトできませんでした。
以下のようにリダイレクトさせたい場合、どのようにhtaccessを記述すればよいでしょうか。
元)http://www.mydomein.jp/archive/yyyy/mm/dd-hhmmss.php
先)http://www.mydomein.jp/archive/i/yyyy/mm/dd-hhmmss.html

ちなみにMovableTypeの元記事はphp形式ですが、iPhone専用ページは通常の静的なページのため、
html形式にしています。

●質問者: moony_crescent
●カテゴリ:インターネット ウェブ制作
✍キーワード:.htaccess HTML INDEX iPhone iPod
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● y-kawaz
●40ポイント

こんなんでどうでしょう?

RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
RewriteRule ^archive/(.+)\.php$ /archive/i/$1.html [R,L]
◎質問者からの返答

早速のご回答を、ありがとうございます。

いただいた記述をしてみましたが、やはりiPhoneのsafariで直接に個別ページを表示させようとすると、リダイレクトされずにPC版の内容で表示されてしまいました。

もちろんページそのものはちゃんとあり、正しくリンクを貼ってあるiPhone専用TOPページからだと表示されるのですが……。


2 ● rouge_2008
●100ポイント ベストアンサー

http://mydomein.jp/」直下ではなく、「archive」ディレクトリ下の.htaccessに次の記述を追加してみてください。

(WEBルート直下に記述した場合の記述は、分かりませんでした。)

 RewriteEngine on

 # 次の2行を追加
 RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
 RewriteRule ^/?([0-9]+)/(.*)?$ /archive/i/$1/$2 [R,L]

 # 以降は元からある記述です。
 # don't serve mtview.php if the request is for a real directory
 # (allows the DirectoryIndex lookup to function)
 RewriteCond %{REQUEST_FILENAME} !-d

※トップページをリダイレクトする記述は、そのままWEBルート直下の.htaccessに記述して置いてください。

◎質問者からの返答

頂いた内容を記述したところ、リダイレクト先としてうまく「archive」内の「i」にある指定されたページ名を表示しました!……が、拡張子が「php」のままで、404エラーとなってしまいました。

これをリダイレクト先として「html」にするには、どのように記述すればよろしいでしょうか。

最後の最後までどうもすみません。

【追伸】

以前にコメントで頂いた記述をもとに見よう見まねで以下のように書いたところ、うまくいきました!

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)

RewriteRule ^/?([A-z_0-9/-]+)\.php$ /archives/i/$1.html [R,L]

今回はお時間をたくさんとっていただきまして、本当にどうもありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ