いろいろ、参考書やネット検索で見ますが、リダイレクトしてくれません><
http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%93
のURLを
http://www.hoge.com/worddetail/%E5%B1%B1%E6%9C%AC%E6%A2%93
このように変えたいと思っています。
上記の場合.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サーバーを使っています。
よろしくお願いします。
これではどうでしょう。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^worddetail/(.*)$ worddetail.php?tag=$1
httpd.conf に書く場合は質問中の書き方で良いと思いますが、
.htaccess で書くなら場合はカレントディレクトリからのパスがマッチされるので頭の / が要らないんじゃないでしょうか?
RewriteEngine on RewriteRule ^worddetail/(.*)$ /worddetail.php?tag=$1
多分↑こうしてやるとマッチすると思います。
いつもご回答ありがとうございます。
ダメみたいです・・・。
変更前URLや変更後URLを絶対パスや仮想URLに試したり、考え付くことはすべて試しましたがダメです。
現在こうなっています。
AddHandler x-httpd-php5 .php .phps
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^worddetail/(.*)$ /worddetail.php?tag=$1 [L]
URLエラーが出るならまだしも・・・
やりたい事がわかった気がします。
> このように私の動的サイトも静的に見せたいと考えました。
これは
http://www.hoge.com/worddetail/%E5%B1%B1%E6%9C%AC%E6%A2%93
でアクセスした場合
URL表示欄は
http://www.hoge.com/worddetail/%E5%B1%B1%E6%9C%AC%E6%A2%93
で、内部的に
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/%E5%B1%B1%E6%9C%AC%E6%A2%93
でアクセスできるのでしょうから
http://www.hoge.com/worddetail.php?tag=%E5%B1%B1%E6%9C%AC%E6%A2%...
のようにクエリ付きでアクセスされるのは、そんなに多くないのでは?
(ひょっとするとテストしている時だけ?)
こんにちは。
チョット回答が難しいです^^;
ヒョットして、私のmod_rewriteが行ってくれることの考え方自体が間違っているのでしょうか?
例えば、
http://blog.myrss.jp/archives/2007/01/7_url_url_mod_r.html
に書いてある事例ですと
確かに
http://www.sfa-cms.com/word/%E6%AF%8D%E3%81%AE%E6%97%A5/%E6%AF%8...
とURL表示欄はPATH_INFO式で表示されています。
この作者はキーワードはGETしていると、別なページにはっきり書いています。
> worddetail という同じキーワードであちらもこちらもやろうとするからでしょうか?
この部分もよく解らないのですが、worddetailはキーワードでなくworddetail.phpというファイル名です。
なんか、私が説明を勘違いしていますか?
> (ひょっとするとテストしている時だけ?)
いえいえ
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html
にも
http://www.google.co.jp/support/webmasters/bin/answer.py?answer=...
にもありますように、
ロボットのクロールがよりたやすくされ、インデックスが残されたいと考えたからです。
いつもありがとうございます。
ダメですね~。
何がいけないんでしょう・・・?