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 16:36:56
  • 終了:2007/05/11 23:58:06

ベストアンサー

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/05/11 16:51:00

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません