• ベストアンサー

mod_rewriteを使ってURLの書き換えがどうしてもできません。

以下のページを参考にURLの書き換えにチャレンジしました。 http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html 私の場合は以下のURLを http://example/list.html?ct=category&ed=34 以下のように書き変えたいと考えています。 http://example/list/category/34 ―.htaccess RewriteEngine on RewriteRule ^/list/([0-9A-Za-z]+)/([0-9A-Za-z]+)$ list.html?ct=$1&ed=$2 [L] このように記述したのですが、私としてはこれで問題ないと考えているのですが、なぜかできません。どこかにミスはないでしょうか……? ちなみに、.htaccessに以上のように記述して http://example/list.html/category/34 にアクセスしたところ以下のように表示されました。 Object not found! 要求された URL は本サーバでは見つかりませんでした。もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 ...

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

# 一例 RewriteEngine on RewriteBase / RewriteRule ^list/([0-9A-Za-z]+)/([0-9A-Za-z]+)$ list.html?ct=$1&ed=$2 [L] ^の扱いにはお気を付けください^^

aiueo667
質問者

お礼

先ほど既に自分でまったく同じコードを書いて解決しておりました……(笑 ^の意味が良く分からないので、調べたいのですが検索の仕方がわかりません……。CSSのセレクタなどもどのように調べたらいいのか分からず莫大な時間を消費して調べています……。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#98692
noname#98692
回答No.2

list.html が正しい場所にあるかどうか確認して下さい。 http://exsample.com/list.html に直接アクセスできますか? 僕の書いた例だと /list.html ですから、ドキュメントルート直下に list.html があるはずです。

aiueo667
質問者

お礼

ドキュメントルート直下に list.html を確認できます。またブラウザからも直接アクセスすることができます。 あと最初に RewriteEngine on と書いただけでエラーが出ていたので、http.conf 内にある #LoadModule rewrite_module modules/mod_rewrite.so という行を LoadModule rewrite_module modules/mod_rewrite.so というようにして有効にしました。 その後、phpinfo() で表示されるページに mod_rewrite の記述が出てきたので有効になったのだと判断しました。(有効した後は、RewriteEngine on を書いただけでエラーになることはなくなりました。) この手順がまずかった、もしくは他に足りない作業がありますか……?

すると、全ての回答が全文表示されます。
noname#98692
noname#98692
回答No.1

RewriteRule ^/list/([^/]+)/([^/]+)/?$ /list.html?ct=$1&ed=$2 [L] ではどうですか?

aiueo667
質問者

お礼

コメントありがとうございます。 RewriteRule ^/list/([^/]+)/([^/]+)/?$ /list.html?ct=$1&ed=$2 [L] と書いても結果は特に変わりませんでした。 なぜできないのかまったく分かりません。 このような場合、どこかapacheなどに根本的なミスがあるのでしょうか……?

すると、全ての回答が全文表示されます。

関連するQ&A