apacheのmod_rewriteに関する質問です。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^en.example.com$ [NC]
RewriteRule ^(.*)$ $1?lang=en [QSA]
としてen.example.comのサブドメインでアクセスした際、全てのファイルにパラメータlangを付与したいと思っています。通常のファイルに対しては成功したのですが、PHPの$_SERVER['PATH_INFO']を利用して動的URLを静的URLに変更しているファイルに対してはエラーが発生してしまいます。
mod_rewriteと$_SERVER['PATH_INFO']を両立させる方法はありますでしょうか?
それとも、$_SERVER['PATH_INFO']をやめて全てをmod_rewriteにしなければならないのでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/12/07 17:32:28
  • 終了:2011/12/14 17:35:04

回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/12/07 19:56:21

$_SERVER['PATH_INFO'] でURL部分、そして、
$_SERVER['QUERY_STRING'] でクエリー部分が取れますので、
組み合わせて使うと良いでしょう

$_SERVERのマニュアル
http://php.net/manual/ja/reserved.variables.server.php

他1件のコメントを見る
id:windofjuly

$_SERVER['PATH_INFO'] がどのような値を返すか確認しました?
例えば www.example.com/aaa.php では何も返しません
www.example.com/bbb/aaa.php であれば bbb を返します

2011/12/08 19:51:08
id:shinwa-tokyo

お返事ありがとうございます。
$_SERVER['PATH_INFO']の部分は問題なく取得できています。
とりあえずは全てをmod_rewriteで書き換えることで、
目的は達成できたのでその方法で行こうかと思っています。
お手間をおかけしました。

2011/12/09 09:40:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません