質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

7回答

4228閲覧

サイトのurl表示について

111

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

3クリップ

投稿2015/02/28 15:42

サイトのurlで、例えば

http://sample.com/re/re2.html

http://sample.com/re2/

と表示されているサイトがあります
ファイルを置いてるフォルダだけをurlに表示してるんでしょうか?
また、これはどうやって実装するんですか?(後者のほう)
なんとなくphpを使ってるんだろうなというのは分かるんですが...
初歩的な質問でごめんなさい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

url末尾のファイル名省略した時のデフォルトは、当該ディレクトリ内にindex.html,index.htm等があった場合、webサーバーはそのファイルを送信します。ここで「等」と言っているのは、サーバ側の設定により変更が可能です。例えば件の「re2.html」をデフォルトに追加するには、
apacheの場合 httpd.confDirectoryIndex を以下のように書き換えます。

lang

1# 2# DirectoryIndex: sets the file that Apache will serve if a directory 3# is requested. 4# 5<IfModule dir_module> 6 DirectoryIndex re2.html index.html index.htm 7</IfModule>

あるいは、当該ディレクトリ下に .htaccess ファイルを作成し、

lang

1DirectoryIndex re2.html index.html index.htm

とします。
これで http://sample.com/re2/ というurlで、ディレクトリ内の re2.html が送信されてくるはずです。

投稿2015/02/28 23:18

blackonyx

総合スコア354

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なんか質問内容を勘違いしているコメントが多いようです

質問は

http://sample.com/re/re2.html
http://sample.com/re2/

なのですが、


http://sample.com/re/re2.html
http://sample.com/re/

と勘違いしているようです

私の知っている限りの方法で考えると(もちろん知らない方法もあると思う)

PHPを使うなら
http://sample.com/re2/index.php

http://sample.com/re/re2.html
にリダイレクト

又は
.htaaacessでRewriteEngineを使うとかの方法を思いつきます

後者を優先に考えて、サーバーの方で対応できないなら前者を使うと良いかと思います

といいつつ、私が勘違いしている可能性も否定できません

投稿2015/03/02 02:59

Guu

総合スコア142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

URLというのはあくまでもサーバーに対するクエリであって、ファイルとかフォルダは関係しないです。
たとえばTwitterだったら、ユーザーのURLは https://twitter.com/syuilo みたいになりますよね。
だから、「http://sample.com/re/re2.html」とか「http://sample.com/re2/」を指定されたサーバーは、何を返すもの自由です。

投稿2016/08/31 15:10

syuilo

総合スコア393

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

http方式で、sample.comと言う名前でDNSに登録してあるホストの何々フォルダの何々ファイルを参照していると言う意味なんですが、皆様おっしゃるようにフォルダ名で入力が終わった場合はindex.htmlやindex.phpを参照するように設定されています。

その設定はapatchのモジュールで設定されていて、.htaccessと言うファイルを利用して変更が出来ると言う事ですね!

投稿2016/04/24 17:54

KatsukiSugiura

総合スコア335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

phpかどうかはわからないよ。

スイス製のアーミーナイフで検索しても出てくるけど、
ApacheというHTTPDのモジュールで、mod_rewriteというのがあるんだよね。
で、これさ、

www.example.com/aaa/bbb
ってアクセスしてきたら、
www.example.com/pages/static/bbb.html
の中身を見せる!(URLはそのまま)

なんて設定ができます。

別のファイルを見せることができるんですねー。
これ使えば色々できます。

こう来たら、こう返す!!みたいな感じです。
だから別に存在しないパスを指定されても、
そこに来たらこれを見せる、って予め設定しておけば、
404 Not Foundにしなくできます。

投稿2015/03/03 05:59

Seiji_Ogawa

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

例示していただいた、いずれの URLも「.htaccess」ファイルで制御します。

「.htaccess」は Apache(Webサーバー)のアクセスに関する動作をディレクトリ(フォルダ)単位で制御するためのファイルで、HTMLやCSSと同様にテキストエディタで編集することができます。ごぞんじかもしれませんが、念のため。

まず、質問に書かれている後者の URLについては「.htaccess」に

lang

1<Files ~ "\.(htaccess|htpasswd)$"> 2deny from all 3</Files> 4 5RewriteEngine on 6RewriteCond %{THE_REQUEST} ^.*/index.html 7RewriteRule ^(.*)index.html$ http://sample.com/re2/$1 [R=301,L]

のようなかたちで記述して制御します。(これで http://sample.com/re2/ のみが 当該の Webサイトの URLとして表示されるようになります)

なぜ、このようなことをするのでしょうか。

それは、

lang

1http://sample.com/re2/ と 2http://sample.com/re2/index.html とでは、

ブラウザに入力すれば、どちらもおなじページにとびますが、検索エンジンには別のページだと判断されてしまうため、SEO上、アクセス数の分散を防ぐためです。
また、URLを統一する場合、通常は index.htmlまでを含めることはしません。それは、入力する URLが長くなることで、利用者の利便性を損なうというのがおもな理由です。

ちなみに、前者の URLも「.htaccess」で制御しています。こちらは、すでに blackonyxさんが回答しています。

lang

1DirectoryIndex re2.html

と書くことで、Webサーバーは、リクエストがあると、まずはじめに re2.htmlをさがします。re2.htmlがみつからないと、設定によりますが Webサーバーは、404 Not Found エラーを返すか、ディレクトリ内のファイルの一覧を表示します。

なお、「.htaccess」は、Webサーバーにより設置が許可されていない(または仮に設置できても機能しない)場合もありますので、使われているサーバーで利用が可能かどうかを管理者に確認する必要があります。

以上、ご参考いただければ幸いです。

投稿2015/03/01 01:22

編集2015/03/01 01:26
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

例えば、
ホームページの作り方
http://www.homepage-tukurikata.com/
ホームページの作り方
http://www.homepage-tukurikata.com/domain/index.html
では、
上の方は、index.html が無くても、index.html の内容が表示:サーバー設定による
下の方は、index.html でアクセスして、URL にも表示されます。

質問者さんとしては、
http://www.homepage-tukurikata.com/domain/index.html
とアクセスしたが、質問者さんがアクセスしたサイトでは、
http://www.homepage-tukurikata.com/
と、なってしまうという事が質問の趣旨でしょうか?
であれば、
index.html「あり・なし」のURL正規化 – 301リダイレクト応用編
https://www.suzukikenichi.com/blog/canonicalization-of-indexhtml-and-non-indexhtml/
辺りから、検索されると、情報があるかもしれません。

昔々の、Gets 系ユーティリティ(Gets117.exeなど)では、階層構造が見れたのですが、
設定漏れチェックなどに使っていました。
現在では、そんな単体ツールあるのかな?(高機能ツールは、除外。)
(PHPありきのサイトや、IISでは、殆どの場合階層構造は見れません。設定が必要。)

フラットファイルで、何でもかんでも一緒くたになっていると、管理する上で、
ファイル一つづつの指定が必要になります、フォルダ分けする事で、フォルダ単位に、
セキュリティ設定が可能となります。
フォルダ分けは、無駄ではありません。
サイト作成時に、WEB公開部分、非公開部分(ローカルのみ、LANのみサイト)の作り込みにも、
応用できます。

投稿2015/03/01 01:15

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問