web-dev-qa-db-ja.com

同じ場所にある同じ名前のフォルダーとファイル

私は14.04に向かって、18.04まで移動しようとしています。 Ubuntuのそのバージョンでは、同じ場所に同じ名前のフォルダーとファイルを配置できますか?

私のユースケースは、拡張子が.htmlでないhtmlファイルがあることです。これをAWS S3にプッシュアップし、そこでいくつかのウェブサイトを提供します。 .html拡張子を省略すると、WebサイトのURLをきれいにすることができます。そして、S3は同じ名前のディレクトリとファイルを持っていることに完全に満足しており、ありがたいことに、ファイルとフォルダであるURLにナビゲートすると、フォルダではなくhtmlファイルを提供します。

これは、Ubuntuにあるのはいいことです。 「articles」というhtmlファイルと、articlesというフォルダーを作成すると、URLは「RESTful」になります。

example.com/articles/titleはそのタイトルの記事を提供し、example.com/articlesは記事のリストを提供します。

とにかく、AWSはすでにこれを行っています。Nautilusを期待していたか、Ubuntuがこれを処理できるので、ローカルディレクトリがサーバーディレクトリと異なる名前であるという厄介なコーディングの悪夢を経験する必要はありません。

これは18.04で機能しますか、それとも適切な回避策を考えることができますか?

5
Costa

OSおよびファイルシステムはこれを許可しません

Ubuntuとそのファイルシステム(ext3、ext4など)では、同じディレクトリに同じ名前のファイルとフォルダーを使用できません。

したがって、nautilusでは、フォルダーの名前を既存のファイル名に変更することはできません。

ただし、Ubuntu(GNU/Linux全般)ファイルシステムでは大文字と小文字が区別されます。 Articlesというフォルダーとarticlesというファイルを作成できます。同じ場所。フォルダー名は大文字のAで始まり、ファイル名は小さいaで始まります。

フォルダーとファイルに必要なCaPiTaLiZaTion規則を使用できます。

代替案

別の方法として、フォルダーとファイルに同じ名前を付ける各フォルダー内にindex.htmlというファイルを作成することもできます。 HTMLファイルにindex.htmlという名前を付けて、たとえば、 example.com/articles/titleであるため、フルパスはexample.com/articles/title/index.htmlであり、あなたが求めていることも実現します。

https://example.com/articles/titleと入力すると、Webサーバーはindex.htmlページを提供し、ブラウザはindex.htmlを表示しません。 https://example.com/articles/titleのみが表示されます。

同様に、https://example.com/article/index.htmlという名前のファイルを作成して、https://example.com/articleと入力したときに必要なものを表示できます。

Harry に感謝します.

14
user68186

質問は https://stackoverflow.com/questions/34550299/aws-s3-hosting-url-rewrite と重複している可能性があります。コメントを見ると、彼の正確なユースケースがURLから.htmlを削除していることがわかります。

受け入れられた答えは有効で有効なソリューションを提供しますが、これは XY問題 の場合だと思います。この場合、本当に必要なRL Rewriting system であり、命名規則の問題を完全に省きます。前の記事はAWS S3には適用されませんが、概念はかなりよく説明されています。残念ながら、S3はそれ自体Webサーバーではないため、URL書き換え機能はありませんが、 Webpage Redirects があります。これは、重複する質問の回答で述べられているように、 。

2
Bjonnfesk