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

mod_rewriteについて質問です。

■環境
・さくらレンタルサーバ ビジネス
・マルチドメインを使用

■したいこと
・ユーザーエージェント毎にドキュメントルートを振り分けたい

■状況
下記の状況で、上手く動作しません。

○ドキュメントルート
マルチドメインを以下に割り当てている
/home/ユーザー名/www/dev/

配下に
/home/ユーザー名/www/dev/k/
/home/ユーザー名/www/dev/pc/
がある

○htaccess
/home/ユーザー名/www/dev/.htaccess

○htaccessの記述
RewriteEngine on
RewriteBase /dev

# ガラケー
RewriteCond %{HTTP_USER_AGENT} DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank [NC]
RewriteRule ^/(.*)$ /k/$1 [L]

# PC
RewriteRule ^/(.*)$ /pc/$1 [L]

ユーザーエージェント毎の振り分けは上手くいっています。
問題は「^/(.*)$」です。

http://www.hoge.jp/だとダメなのですが、
http://www.hoge.jp//だと振り分けられます。

「^/(.*)$」の「/」が余計なようです。
が、これを取ってしまうと、サーバーエラーになります。

さくらだとRewriteBaseを指定すれば良いとの記事を各所で見て試しましたが、
まった効果なしです。
そもそもRewriteBaseがあっても無くても同じ動作をしてしまいます。

お手数ですが、正しい記述をお教え頂けますでしょうか。

●質問者: 副長
●カテゴリ:ウェブ制作
✍キーワード:.htaccess DoCoMo HOME J-PHONE KDDI
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● niwa-mikiho
●27ポイント

RewriteRule ^/?(.*)$ /pc/$1 [L]


これでどうでしょう?

◎質問者からの返答

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

^/?(.*)$だと^/(.*)$もしくは^(.*)$ということですね。

試してみましたが、^(.*)$として解釈され、エラーになってしまいました。

おそらくアクセスする度に条件が一致し、ループしてるようです。


2 ● うぃんど
●27ポイント

末尾がスラッシュで終わっていてもいなくても良いようにする一例

^/(.*)/*$
◎質問者からの返答

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

試したのですが、条件に当てはまらず、/dev/にアクセスしてしまいました。


3 ● b-wind
●26ポイント
RewriteEngine on
RewriteBase /

# ガラケー
RewriteCond %{HTTP_USER_AGENT} DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank [NC]
RewriteRule ^/?(.*)$ /k/$1 [L]

# PC
RewriteRule ^/?(.*)$ /pc/$1 [L]
関連質問


●質問をもっと探す●



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