php-beginner回答ポイント 500ptウォッチ

RewriteEngineに関して質問です。

下記の2つの動きを行いたいのですが考えたスクリプトだと無限ループしてしまいます。
それぞれのスクリプト単体だと正常に動作するのですが2つ記述すると無限ループとなります...
なにか良い記述の仕方はないでしょうか?

http://example.com/hoge
→URIの先頭に「ja」のフォルダを付けてリダイレクト「http://example.com/ja/hoge

http://example.com/ja/hoge.html
→URLを変えずに「http://example.com/hoge.html」の情報を表示

-----------------------------------------------------------------
RewriteEngine On

#ルート以降が/ja,/us,/zh,/twの場合、URLを変えず上層フォルダからパスを取得
RewriteCond %{REQUEST_URI} ^/(ja|us|zh|tw)/
RewriteRule ^.*?/(.*?)$ $1 [L]

#ルート以降が/ja,/us,/zh,/tw以外のURLは全て/jaを先頭に付けてリダイレクト
RewriteCond %{REQUEST_URI} !^/(ja|us|zh|tw)/
RewriteRule ^.*$ http://%{HTTP_HOST}/ja%{REQUEST_URI} [L]
-----------------------------------------------------------------

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

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

質問の情報

登録日時
2015-03-11 14:04:38
終了日時
2015-03-11 21:40:14
回答条件
1人1回まで

この質問のカテゴリ

この質問に含まれるキーワード

REQUEST_URI42URI127スクリプト2307リダイレクト414無限ループ55URL11376

人気の質問

メニュー

PC版