- ベストアンサー
CGIなどは絶対パスでも良い?相対パス?SEO的
- CGIの設置において、絶対パスと相対パスの選択は技術的な面とSEOの観点から考える必要があります。
- 相対パスを使用することで、メンテナンスがしやすくなりますが、SEOの観点では絶対パスの方が良い場合もあります。
- 絶対パスを使用する場合は、パスの記述に注意し、ホームページのURLが変更された場合にも対応できるようにする必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
相対パスだろうが絶対パスだろうがまったく関係ありません。ユーザーエージェントは、HTMLの内容から、リンク先のサーバーまで含んだ絶対パスを算出して次の要求をします。 そのファイルが http://hoge.com/abc/efg.html だとして、その中のリンクが ./hij.html だったら、HTTPサーバーであるhttp://hoge.comに対して /abc/hij.htmlを要求 すなわち、http://hoge.com/abc/hij.html と同等 ../hij.html だったら、http://hoge.comに対して /abc/hij.htmlを要求 すなわち、http://hoge.com/hij.html と同等 /klm/hij.html だったら、http://hoge.comに対して /klm/hij.htmlを要求 すなわち、http://hoge.com/klm/hij.html と同等 私は、ローカルサーバーですから、絶対に絶対パスで記述しています。絶対パス(/)からだと、製作中のファイルをどこに移動しても中身をいじらなくてすみます。特にCGIをローカルでテストするときには必須です。 具体的に言うと <a href="/index.html">トップページへ</a> <img src="/images/photo.jpg"> <link rel="stylesheet" type="text/css" href="/styleSheet/standard.css"> と書いたテンプレートをどこで作成しても、完成してテストが済んだら本来の場所に移動できます。 ★逆に、ローカルサーバーを使わないときは、 <a href="/index.html">トップページへ</a> <img src="/images/photo.jpg"> <link rel="stylesheet" type="text/css" href="/styleSheet/standard.css"> では、リンクしませんね。
その他の回答 (1)
- mtaka2
- ベストアンサー率73% (867/1179)
>2 SEO的には、相対パスでも絶対パスでも違いはありません。 >1 相対パスでも絶対パスでも、どちらでもお好きな方を選べばいいかと思いますが、 相対パスとして作成した方が、管理が楽になるかと思います。 たとえば、機能修正などを行った場合、本番環境に設置する前に、 「ローカルPCにCGI環境を作る」とか、「本番環境に別ディレクトリに設置する」などのテスト環境を作った方が便利な場合が多いです。 その場合、絶対パスにしてしまうと、テスト環境から本番環境への移行で、パスの書き変えという作業が入ってしまいます。 相対パスで作っておけば、まったく同じデータおよびプログラムがテストと本番で共用できます。
お礼
mtaka2 さま さんたです。 いつもありがとうございます。 なるほどそうですね。 てっきり絶対パスのほうが楽だと思っていましたが(テストでネットサーバに上げるため)、ですが、ローカルサーバーを組む予定なので、やはり、相対パスの方が良いですね。 パスの書き換え大変ですものね。 大変勉強になりました。 ありがとうございました。 失礼致します。
お礼
ORUKA1951 様 いつもお世話になっております、ありがとうございます。 昨日納品でバタバタしておりました。お返事が遅くなり、大変申し訳ございません。 なるほどです。よくわかりました。結局は、アドレスが同じですものね。 > 私は、ローカルサーバーですから、絶対に絶対パスで記述しています。絶対パス(/)からだと、製作中のファイ>ルをどこに移動しても中身をいじらなくてすみます。 ハイおっしゃるとおりでした。今回CGIを全て絶対パスにて記述したところ、ソースの修正がありましたが、CGIのところは修正しなくてすみました。ファイル数が多くて、テンプレートを使用しなかったので、絶対パスがとても重宝致しました。 なるほど、、、やっぱりローカルでひとつサーバを動かしたほうが良いですね。ひとつのドメインを取得して、レンタルサーバーにてテストしとりました。 今回も大変勉強になりました。 ありがとうございました。 失礼致します。