Lingrのログを読むアプリを作っています。とりあえず、以下のようにルーム名をパラメータとして指定すれば直近200件(デフォルト)のログを表示できている状態です。
/app_dir/view?room=kenn
さて、これをmod_rewriteを使って
/app_dir/view/kenn
とアクセスしてもOKなようにしたいと思っています。.htaccessは以下のように書いてみました。
Options +MultiViews
RewriteEngine on
RewriteBase /app_dir
RewriteRule ^view/([0-9a-zA-Z]+)/?$ view?room=$1 [L]
ところが、/app_dir/view/kennでアクセスすると「ページのリダイレクト設定が正しくありません。このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」(Firefox)とエラーになってしまいます。どこがまずいでしょうか?ご教示の程よろしくお願いします。
先ずは MultiViews, RewriteRule を単独で記述して機能しているかを調べてみてはどうでしょうか?
(MultiViews が機能するかは確認済みだそうですが、問題のディレクトリで上手くいってますか?)
ループしているという事から、上位のディレクトリで何かやっているような気もするのですが。
共存が問題点であれば、
RewriteRule ^view/([0-9a-zA-Z]+)/?$ view.php?room=$1 [L]
とすれば、(拡張子を加える為だけに使われているのだとすれば)MultiViews は不要ですよね。
/app_dir/view?room=kenn
拡張子等はついていませんが何か設定されていますか?
Alias 等ほかの Apatch の設定を反映させるには PT オプションが必要です。
RewriteEngine on RewriteBase /app_dir RewriteRule ^view/([0-9a-zA-Z]+)/?$ view?room=$1 [PT,L]
でどうでしょう?
ご回答ありがとうございます。
わたしの理解では「Options +MultiViews」で拡張子が省略できるはずですので、あえてviewのみにしています。つまり、実際には「view.php」が実行されています。これに関しては他のアプリで実装して問題ない事を確認しています。
PTオプションを追加してみたのですが、結果は同じでした。うーむ、どうなんでしょう。正規表現の部分は問題ないでしょうか?あるいは他の原因でしょうか…。
先ずは MultiViews, RewriteRule を単独で記述して機能しているかを調べてみてはどうでしょうか?
(MultiViews が機能するかは確認済みだそうですが、問題のディレクトリで上手くいってますか?)
ループしているという事から、上位のディレクトリで何かやっているような気もするのですが。
共存が問題点であれば、
RewriteRule ^view/([0-9a-zA-Z]+)/?$ view.php?room=$1 [L]
とすれば、(拡張子を加える為だけに使われているのだとすれば)MultiViews は不要ですよね。
おお!おっしゃるように特に必要ないと思われましたのでとりあえずMultiViewsをコメントアウトして試したところ、きちんと動作しました!ありがとうございます。感謝です!
おお!おっしゃるように特に必要ないと思われましたのでとりあえずMultiViewsをコメントアウトして試したところ、きちんと動作しました!ありがとうございます。感謝です!