Apacheのmod_rewriteの質問です。http://q.hatena.ne.jp/1178869014 の質問の続きです。

前回の質問での回答の通りに

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?key=$1

と.htaccessに書くことで希望通りのRewriteをできるようになったのですが、ある条件のときにはうまく動かないことに気づきました。その条件とは「キーワード」に”.”(ドット)が入っているときです(「Mr.Children」など)。この場合はリダイレクトされずMr.Childrenというファイルを探しにいってしまうのか、404が出てしまいます。どうすればキーワードにドットが入っているときでも正常に動かすことができるでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/05/13 00:18:08
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:GEN111 No.1

回答回数472ベストアンサー獲得回数58

ポイント60pt

 ローカル(Windows)とレンタルサーバ(Linux)で試してみましたが、双方共にキーワード「Mr.Children」を渡すことができました。

  • Apache のエラーログは見られるでしょうか?
  • 「RewriteCond]の2行を削除した場合はどうでしょうか。
  • 「Mr.Children」という名前の適当なファイルを置いた場合はどうでしょうか?

 現状ではっきりとした原因を思いつきませんので、今回は解決までお手伝いできないかもしれません……

mod_rewrite

id:pha

すみません、こちらの勘違いでした。

どうもFTPの転送がうまく行っていなかったようで、.htaccessの書き換えができていなかったためのようです。きちんと書き換えると正常に動きました。

どうもありがとうございますm(__)m

2007/05/13 00:17:44

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

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

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

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

回答リクエストを送信したユーザーはいません