質問: .htaccessでのmod_rewrite設定。 いろいろ、参考書やネット検索で見ますが、リダイレクトしてくれません>< のURLを このように変えたいと思っています。 上記の場合.htaccessの中身は AddHandler x-httpd-php5 .php .phps RewriteEngine on RewriteRule ^/worddetail/(.*)$ /worddetail.php?tag=$1 ではおかしいでしょうか? 『AddHandler x-httpd-php5 .php .phps』はサーバーでPHP4とPHP5が選択でき、PHP5を選択した際ドキュメントディレクトリに自動で.htaccessも作成されました。 その.htaccessに、 RewriteEngine on RewriteRule ^/worddetail/(.*)$ /worddetail.php?tag=$1 を自分で追加したのですが・・・。 500や403エラーは出ないのですが、URLはちっとも変化しません。 Xサーバーを使っています。 よろしくお願いします。
回答: やりたい事がわかった気がします。 > このように私の動的サイトも静的に見せたいと考えました。 これは > > > > > でアクセスした場合 > > > URL表示欄は > > > > > > で、内部的に > > > http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%... > > > で表示されたページが表示されます。 > > > 以上より既に実現できていますね。 > > 問題は、 > > > http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%... > > > にアクセスした場合、URL表示欄も > > > http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%... > > > のままで、リダイレクトされないということです。 > > > この時は、rewrite の条件に当てはまりませんので、書き換えれません。 また、Rule を追加して書き換えが出来たとしても、URLの表示欄は書き会える以前のままです。 (前の例で、アクセスしたURLがブラウザのURL欄に残ったままなのと同じ事です) RedirectMatch を使う事で、特定の条件の時のアクセス先を書き換えることが出来ます。 (ブラウザのURL欄も書き換え後のアドレスです) ですが、クエリはクエリとして残ったままなので、削除する事が出来ません。 また、上手く使わないとループしてしまうようです。 (worddetail という同じキーワードであちらもこちらもやろうとするからでしょうか?) 自サイトからは、 でアクセスできるのでしょうから http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%... のようにクエリ付きでアクセスされるのは、そんなに多くないのでは? (ひょっとするとテストしている時だけ?)