Apacheのmod_rewriteの質問です。mod_rewriteを使って

 http://aaa.com/キーワード
 http://aaa.com/キーワード/
へのアクセスを
 http://aaa.com/index.php?key=キーワード
へ転送したいのですが(キーワードは日本語ですがエンコード済み)、
 RewriteRule ^([^/]+)/?$ index.php?key=$1
と書くと、
 http://aaa.com/index.php
 http://aaa.com/index.css
などのファイルへのアクセスも転送されてうまく動かなくなってしまうようです。
こういう場合はどう書けばいいのでしょうか?

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

ベストアンサー

id:GEN111 No.1

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

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

RewriteCond で適用条件を指定してやればどうでしょうか。

!-f は存在するファイル名にはルールを適用しない

!-d は存在するディレクトリ名にはルールを適用しない

Apache module mod_rewrite

id:pha

おお、そんな手があったのですか。

できました。ありがとうございますー。

GEN111さんには前にも何かで回答していただきましたね。

いつもありがとうございます^^

2007/05/11 23:55:20

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

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

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

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

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