- ベストアンサー
PHPで静的ページ見せる方法について
- PHPでmod_rewriteを使用して動的ページを静的ページにする方法について教えてください。
- 現在、.htaccessファイルを使用してURLの書き換えを試みていますがうまくいっていません。
- レンタルサーバーのロケットネットを使用しており、制作者のPHPレベルは初心者です。ご教授いただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あるURLに対して、動的なページを表示させたいんですよね? 転送させたいわけじゃないんですよね? では、第一階層のindex.phpのリンクは <p><a href="/detail/<?=$line[0]?>.html">・<?=$line[1]?></a></p> とするべきじゃありませんか? mod_rewriteは http://○○○.net/detail/index.php?id=△ と http://○○○.net/detai/△.html を同じように表示させるものです。 △が同じなら、どちらのURLでも同じように見えます。 http://○○○.net/detail/index.php?id=△ を http://○○○.net/detai/△.html に転送させているわけではありません。
その他の回答 (1)
- mikemike7
- ベストアンサー率87% (97/111)
>http://○○○.net/detail/index.php?id=△のままです。 HTML上で、 http://○○○.net/detail/△.html という形式でリンクしているのに、 http://○○○.net/detail/index.php?id=△ になってしまうということは、 1.HTML上でうまく修正ができていない。 2.http://○○○.net/detail/index.php?id=△に転送されている。 ということなのでしょう。 ブラウザに http://○○○.net/detail/△.html でアクセスして上記のURLのまま表示されますか? されるなら、PHP側の問題。もしくは、ブラウザのキャッシュの問題ではないでしょうか。 >SEO的によくなるといたりましたので どうなんでしょうね。 最近は動的ページでもバンバン取得にきます。 むしろ動的ページのほうが更新頻度が高いことが多いので、 静的ページよりも取得に来る頻度が高いようにも思います。 ですから、最近はそれほど構築の検討材料にはしていません。 あくまでも私の感想ですが。
お礼
アドバイスありがとうございます。 おかげさまで無事にURLが http://○○○.net/detail/△.html になり、ちゃんと表示されるようになりました。 mikemike7さんのSEO意見までいただき大変に参考になります。 今後の検討材料にさせていただきます。 今回はとりあえずせっかく勉強したので、 http://○○○.net/detail/△.html でいかせていただきますね。 Lv3 → Lv5 くらいまで成長した気がします。 ありがとうございました。
お礼
解決しました><! 自身のスペルミスでしたorz 大変もうしわけございませんでした RewriteRule ^/detail/(.*)\.html$ /detail/index.php?item=$1 [L] ではなく ↑ここ間違いデシタ ↓ RewriteRule ^/detail/(.*)\.html$ /detail/index.php?id=$1 [L] でしたね>< 結果的にリンクが間違っていたのでしたね。 大変勉強になりました。本当にありがとうございました。
補足
ご回答ありがとうございます。 申し訳ありませんが「.htaccess」のことについて あまり詳しくわからないのですが、転送させたいわけではありません。 http://○○○.net/detail/index.php?id=△ などの動的ページなURLですとSEO的によろしくないと伺いました。 いろいろ調べた結果 「.htaccess」でmod_rewriteを使用すると実際存在しないファイルですが、 http://○○○.net/detai/△.htmlのような静的ページのURLに書き換えることができる、 こうすることでSEO的によくなるといたりましたので、実践してみていて、 いきづまってるところです。 さて、 ご回答を参考にし、第一階層のindex.phpのリンクを以下に書き換えてみました。 <p><a href="/detail/<?=$line[0]?>.html">・<?=$line[1]?></a></p> 「.htaccess」ファイルの8~11行を以下に書き換えてみました。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/detail/(.*)\.html$ /detail/index.php?item=$1 [L] 上記の結果、 http://○○○.net/detail/index.php?id=△ のままです。 なんとなくあと1歩でできるような気がするのですが、 もう1アドバイスいただけませんでしょうか><; よろしくお願いいたします。