よく、
http://www.sample.com/category/
とか
http://www.sample.com/category/music/
とか、「/」でアドレスが終わっているページがありますが、これは実際には
http://www.sample.com/category/index.php
http://www.sample.com/category/music/index.html
という構成なのでしょうか?
知りたいのは2点です。
質問1.
なぜ、「/」で終わるようにして
http://www.sample.com/category.php
http://www.sample.com/category/music.html
としないのでしょうか?
質問2.
あと、もしパラメータをつけるとしたら
http://www.sample.com/category.php?id=hoge
は、
http://www.sample.com/category/
だとどのようになるのでしょうか?
No.6ベストアンサー
- 回答日時:
末尾が / の URL が要求された場合
Webサーバーが Apache で静的ファイルを表示するなら、
このモジュールが表示するファイルを決定します
http://httpd.apache.org/docs/2.4/mod/mod_dir.html
Webサーバーが mod_rewrite などで URL を書き換えるなら、
書き換えた先の CGI なり PHP なりが実行され、その結果が表示されます
Webサーバーが Tomcat(などのJavaEEサーバー) なら、
URL にマッピングされたサーブレットが実行され、その結果が表示されます
例) http://www.javadrive.jp/servlet/webxml/index4.html
例) http://www.mkyong.com/webservices/jax-rs/jax-rs- …
つまり外部から見ただけでは構成は不明です。
回答1.
個人的には REST の流行が一番の原因だと思います。
http://ja.wikipedia.org/wiki/REST
この哲学にしたがえば URL は「リソースを一意に識別する汎用的な構文」
であることを求められますので、
良) http://www.example.com/category/ ← category・引数なし、のリソースを表す
悪) http://www.example.com/category.php ← 拡張子は唯のシステム都合なので邪魔
悪) http://www.example.com/category/index.html ← いわずものがな
この哲学が浸透したので、検索エンジンもこの形式を好むようになり、
SEO に有利という風潮が生まれたのかと推測します。
回答2.
URL の仕様的には、以下はすべて正常です。
http://www.example.com/category.php?id=hoge
http://www.example.com/category/?id=hoge
余談ではありますが
http://allabout.co.jp/gm/gc/23887/
ありがとうございます。
拡張子付きはよくない、みたいに覚えておけばいいですかね^^;
余談のところで、sample.comは大丈夫とのことでしたが、普通にsample.comはサイトがあるっぽいですね・・・。
No.7
- 回答日時:
> sample.comは大丈夫とのことでしたが
誤) sample
正) example
間違いやすいで注意しましょう
根拠
http://suika.fam.cx/rfc/ja-translations/rfc2606- …
3. 予約例示第二位ドメイン名
No.5
- 回答日時:
まず、こちらですが、
>http://www.sample.com/category/index.php
>http://www.sample.com/category/music/index.html
>
>という構成なのでしょうか?
>
はい、こういった構成です。
質問1、/で終わらなくても大丈夫です。/で終了しなければならない理由は(多分)ないです。
ただ、気おつけなければいけないのは、同一のコンテンツが複数のURLで表示されてしまう件です。
質問2、は、
「論理的かつ人間が理解できる方法で(可能な場合は ID ではなく意味のある単語を使用して)URL を構成できるよう、コンテンツを分類します。」なので、パラメータはない方がSEO的には良いと認識してくたさい。
こんな感じで如何でしょうか?お役に立てましたでしょうか?
No.4
- 回答日時:
>ちょっと質問2の部分が無知なためなかなか理解できないですが…。
PATH_INFO だと思いますが、サーバーはデフォルトでそのファイルがなければ、その末尾は捨てててPATH_INFOに格納して、上位のファイルかディレクトリを探します。ルートまでたどって、はじめてNot Foundを返すのですよ。rewriteなんてまったく関係ないです。
例えば、先の例で言うと /abc/efg/hij/klmのうち、abcが実行ファイルでしたら、PATH_INFO/efg/hij/klmを使ってページを作ればよいし、もしabcがディレクトリでそのディレクトリにDIRECTORY_INDEXで指定された実行ファイルがあれば、それを起動すればユーザーには、 /abc/efg/hij/klmのファイルが提出されたとしか見えない。
とっても単純で明快なシステムですよ。
あなたがレンタルサーバーお持ちでしたら
適当なHTMLファイルをルートに/test/というフォルダーを作って入れておきます。
abc/というディレクトリを作って、そこに
AddType application/x-httpd-cgi index.html;
としておきます。これでindex.htmlはCGIとして動作します。
[index.html]
#/usr/local/bin/perl
# PerlへのPATHを書いておく
print "Content-type: text/html\n\n";
if($ENV{'PATH_INFO'}){
$filename = '/test'.$ENV{'PATH_INFO'};
if( -f $filename ) {
open(IN,"<$filename");
while(<IN>){
print $_;
}
else{
while(<DATA>){
print $_;
}
}
else{
while(<DATA>){# __END__以降の内容をそのまま使う
print $_;
}
}
__END__
<html>
<head>
<title>タイトル</title>
</head>
<body>
・・・・・HTMLソースを書く
</body>
</html>
これだけで、http://hoge.com/abc/などでアクセスされると、・・指定されたファイルがあたかもあるように表示される。
プログラム書いたことなくても、おおよそは理解できるはずです。実際に使用するときはエラーへの対処、画像や他のファイルのときのContent-typeの記述、出力HTMLの一部書き換えなどが加わります。例えば各ページに共通なメニューなどはここで追加すれば良いでしょう。
No.3
- 回答日時:
>という構成なのでしょうか?
既出の通り、一般的にはそうですが、サーバ側で自由に設定できます。
ただし「実際の構成」とはまったく違うことも多く、URLが
http://example.com/category/music/
だったとしても、サーバの中には[category]ディレクトリも[music]ディレクトリも存在しないこともよくあります。
サイトがある程度の規模になると、細かくディレクトリ分けして大量のページを作成するのではなく、
http://~/controller.php?ct1=category&ca2=music
のように「判定・振り分けプログラム」(コントローラ)にパラメータを渡して処理する方が楽です。
しかしこれだと閲覧者からは分かりにくく、何より「 動的URLはSEOでは不利 」と言われています(諸説あり)。
なので mod_rewriteという機能で、動的URLを静的URLに 内部で変換して
http://~/category/music/ => http://~/?ct1=category&ca2=music
として処理する手法がよく取られています。
( mod_rewrite 静的 動的 とかで検索してみて下さい)
※実際どのように処理されているのかは外部からは分かりません。
質問1
サーバ側の管理方法によるので何とも言えませんが、前記のようにディレクトリ名をパラメータに変換している場合、ファイル名は必要ないことも多い
質問2
無理やりとするなら、ファイル名が無ければ指定ファイル(例index.php)になるので
http://www.sample.com/category/?id=hoge
になるかと。
ありがとうございます!
mod_rewrite、そういえば昔使ったことあります!
自分の場合はresult.php?date=20140501を、result20140501.htmlに変えていました。
それをディレクトリっぽくしているのですね。
気づきませんでした・・・。
わざわざディレクトリっぽくそうするのはSEOのためなのですか。
なんとなく、拡張子がphpだと「phpで書いているのか?」と思われるのがセキュリティ的にNGだからディレクトリっぽくしているのかと思いました。
No.2
- 回答日時:
具体的な例で示したほうがわかりやすいかも。
なお拡張子は、一切忘れてください。(windowsとは違う)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
サーバーがクライアントから、
GET: /abc/efg/hij/klm
という要求を受けたとします。
1)klmというファイルが存在していれば、そのファイルの設定を確認します。
ファイルの種類がtext/htmlと指定してあれば、応答ヘッダ(Content-type:)にtext/html、画像でしたらimage/jpeg などをつけてクライアントに返します。
それが実行ファイルでしたら、処理プログラムに引き渡します。
2)klmがディレクトリでしたら、開いて
・DIRECTORRY INDEXに指定してあるファイルがあればそれを順番に
index.html index.php INDEX.HTM とか複数設定することもある
・それがなくて許可されていればディレクトリ一覧を返す
3)klmというファイルもディレクトリもないと、PATH_INFという環境変数に/klmを格納して/hijについて、上と同じ判別を行なう。
4)サーバーのトップまで帰って、この処理を行なう。
(注)サーバーのトップにDIRECTORY INDEXで実行ファイルが指定してあれば、PATHINFO(/abc/efg/hij/klm)を渡して実行
なければNOT FOUNDを返す。
>質問1.なぜ、「/」で終わるように
通常はURLの簡略化でしょう。DIRECTORY_INDEXが指定してあれば、1動作負担をかけますが・・
>質問2.あと、もしパラメータをつけるとしたら
パラメーターの渡し方はいくつもあります。
?以降のQUERY_STRING
/以降のPATH_INFO
要求のヘッダに続く、本文--標準入力
>http://www.sample.com/category/music.html
の/category/music.htmlがすべて、PATH_INFOであって、物理的にはそれは存在しない場合もあります。
新聞社のサイト、個別の記事のURLはすべてPATH_INFOです。Wikiの
HyperText Markup Language - Wikipedia( http://ja.wikipedia.org/wiki/HyperText_Markup_La … )
の/HyperText_Markup_Languageも明らかにPATH_INFOですね。
ありがとうございます。
仕組みとしてはそのような方法なのですね。
ちょっと質問2の部分が無知なためなかなか理解できないですが…。
もう少し検索して調べてみます^^;
No.1
- 回答日時:
>という構成なのでしょうか?
違います。
http://www.tohoho-web.com/wwwxx076.htm
ファイル名省略時にどのファイルを表示するかはWebサーバにより異なります。
ディレクトリとファイルの違いはご存知ですよね?
一般的にはindex.htmlですがphp等を利用している場合はディレクトリ毎に違うかもしれません。
>質問1.
サーバ管理者の一存なので...
ディレクトリ毎にアクセス権限やサーバを変更できますのでそれで変更するか、情報を管理する単位でディレクトリを分けている場合が多いかと。
>質問2.
パラメータはブラウザ側で指定するのは無理でしょう。
ありがとうございます!
そうですね、ファイルを省略した場合のはわかるのですが、なぜURLの最後をファイルにしないでディレクトリで終わらせているサイトが多いのか疑問に思いましたので質問させて頂きました。
質問2は無理なのですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- ドライブ・ストレージ B550M Pro4マザーにM.2_SSD取付に関して 2 2023/04/15 02:07
- レディース これは、黒と白はどちらが合うと思いますか? 3 2022/12/15 15:44
- 音楽配信 Androidで好きな楽曲を着信音にする方法 2 2023/07/23 14:15
- その他(プログラミング・Web制作) 恒久的リダイレクトについて 2 2023/07/13 15:58
- WordPress(ワードプレス) WordPressの記事の途中に差し込む 1 2023/06/29 11:18
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- その他(住宅・住まい) 私の自宅にも、全く同じ型式のロスナイが取り付けられています。 これって実際に業者に依頼したら費用は幾 2 2022/09/19 18:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1つ下の階層のフォルダに相対...
-
Application.OnTimeで引数付き...
-
HTMLの階層移動
-
[URL] "*/index.cgi" を "*/" ...
-
サーバー内のフォルダにある写...
-
フォルダ内の最初のファイル名...
-
イントラネットURLの登録方法
-
URLについて
-
XREA使用で作成したHTMLファイ...
-
URLの日付について
-
webサイトの「index」を非表示...
-
Excelで、社外秘(閲覧のみ)と...
-
HTMLからフォルダを開きたい
-
フレーム内のPHPへPOSTで情報を...
-
ホームページでファイルをダウ...
-
htmlファイルの表示が真っ白
-
【HTML】1クリックで複数ファイ...
-
googleドライブで、PDFファイル...
-
Webサイトから、txtファイルを...
-
どのページもすべて同じURLなの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つ下の階層のフォルダに相対...
-
リンク先に日本語フォルダがあ...
-
XREA使用で作成したHTMLファイ...
-
複数のindex.htmlを作ってもい...
-
Application.OnTimeで引数付き...
-
Apacheで、indexの拡張子別に優...
-
URLの日付について
-
フォルダ内の最初のファイル名...
-
Windows環境下のHTML内部リンク...
-
.htmと.htmlの違い
-
webサイトの「index」を非表示...
-
htaccessを利用してurl正規化
-
URLに「.html」の拡張子がなく...
-
数秒で自動リンクするページを...
-
トップページ「/index.html」の...
-
複数のindex.htmlが存在するホ...
-
indexをつけないとどうなる?
-
絶対パスのルートをサブディレ...
-
ホームを index.html から inde...
-
index.htmlファイルはどこに?
おすすめ情報