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

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にしなければならないのでしょうか?

●質問者: shinwa-tokyo
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど

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

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


shinwa-tokyoさんのコメント
ご回答ありがとうございます。 $_SERVER['QUERY_STRING']でクエリー部分を取得することに関しては成功したのですが、 $_SERVER['PATH_INFO']を利用しているページではなぜか403エラーが出てしまいます。URLに手動で引数を付加すると問題なく表示されるのですが…。もし原因がわかれば教えていただけたらうれしく思います。

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

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

●質問をもっと探す●



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