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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

意見交換

クローズ

4回答

1482閲覧

URLの末尾スラッシュの有無について

origa3

総合スコア22

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

0グッド

4クリップ

投稿2023/05/30 17:29

0

4

テーマ、知りたいこと

URLの末尾スラッシュは残しますか?消しますか?

背景、状況

データベースに外部リンクURLを保存する仕組みを作っています。
ここで気になったのがタイトルの件です。

ユニークキーで保存したいので、末尾スラッシュの有無を統一したい(でないとスラッシュの有無で2通りのURLを保存してしまう)と思っておりまして…。

少しググればこういった記事を山ほど目にします。
urlの最後の「/(スラッシュ)」あり・なしの違いは?必要性について解説

しかしいずれも「自サイトでどうするか」であって「外部リンクをデータベースに保存するときどうするか」という問題への言及は見つかりません。

みなさまのご意見をお聞かせ頂けませんでしょうか。

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

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

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

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

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

回答4

#1

maisumakun

総合スコア145183

投稿2023/05/30 21:48

末尾スラッシュの有無を統一したい(でないとスラッシュの有無で2通りのURLを保存してしまう)と思っておりまして…。

本当に「スラッシュの有無で2通りのURL」が存在し、それぞれが別なコンテンツを返すサーバ設定も可能ですので、統一そのものをすべきではありません。

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

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

#2

68user

総合スコア2005

投稿2023/05/31 05:25

URL の正規化が目的であるなら、末尾スラッシュに限らず、
・ドメイン部分の大文字小文字
・ドメインの www 有無
・ドメイン末尾のドット
・http・https の違い
・日本語ドメイン (日本語ベタ書きか、xn-xxxxx か)
・#hash の有無
・?page=1 の有無
・?param1=a&param2=b と ?param2=b&param1=a の同一視
とかいろいろありますが、canonical を見てうまくいくこともあればそうでないこともあり、301 moved permanently を信じてよいときもそうでないときもあり…

可能であるなら気にせずそのまま保存が精神衛生上よろしかろうと思います。どうしてもというなら泥臭く対応していくしかないですね。ドメインごとの if 文や正規表現置換の嵐になるかもしれませんが。

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

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

#3

pippi19

総合スコア679

投稿2023/05/31 07:08

編集2023/05/31 07:10

#1に賛同した上での具体例の補足です。

下記をそれぞれ叩いてみてください。
末尾のスラッシュ有無でリクエストが変わってしまいます。

https://teratail.com/search?q=linux
https://teratail.com/search?q=linux/

こちらは末尾がGETパラメータなのでわかりやすいですが、
ディレクトリだとしても同様で、スラッシュ有無で挙動が変わるサイトが存在します。

自サイト内ではトレイリングスラッシュの扱いを統一することを推奨しますが、
不特定多数のサイトに対しては統一してはいけません。

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

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

#4

otn

総合スコア84499

投稿2023/05/31 09:27

すでに回答が出てますが、それらは別のURLです。

同一視するのであれば、スラッシュ有無と言うよりは、URL-Aをリクエストしたら、URL-Bへの301 Moved Permanentlyが返ってきたら、AでなくBを保存すると言うことでしょうか。

「301が信用できるのか?(本来302を返すべき所を間違って301を返してしまっているサイト)」と言う問題は確かにありますが、ブラウザーだと301の結果はキャッシュしてしまうので、他人の間違いまでは責任持たないでよいシステムであればそれにならって良いのではと思います。

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問