Папка и файл с тем же именем в одном месте [дубликат]

На этот вопрос уже есть ответ:

Я в 14.04 собирается перейти на 18.04. Могу ли я в этой версии Ubuntu разместить в одном месте папку и файл с тем же именем?

Я использую HTML-файлы без расширения .html, которые я загружаю в AWS S3, где обслуживаю несколько веб-сайтов. Отказ от расширения .html позволяет мне иметь чистые URL-адреса для веб-сайтов. И S3 совершенно счастлив иметь каталоги и файлы с одинаковыми именами, и, к счастью, они обслуживают файл html, а не папку, если вы переходите по URL-адресу, который является файлом и папкой.

Было бы неплохо иметь это в Ubuntu. Я мог бы иметь html-файл под названием 'article' и папку под названием article, и тогда мои URL-адреса были бы "RESTful".

example.com/articles/title даст вам статью с таким названием, а example.com/articles покажет список статей.

Как бы то ни было, AWS уже делает это, я просто надеялся, что Nautilus или Ubuntu справятся с этим, поэтому мне не придется проходить через неловкий кошмар кодирования, когда имена моих локальных каталогов отличаются от имен каталогов моего сервера.

Работает ли это в 18.04 или кто-нибудь может придумать хороший обходной путь?

5
задан 13 April 2018 в 13:44

2 ответа

ОС и файловая система не позволяют это

Ubuntu и ее файловые системы (ext3, ext4, и т.д.) не позволяют тождественно именованный файл и папку в том же каталоге.

Поэтому nautilus не позволяет переименовывать папку к существующему имени файла.

Однако Ubuntu (GNU/Linux в целом) файловые системы чувствительна к регистру. У Вас может быть папка под названием Статьи и файл, названный статьями в том же месте. Обратите внимание, что имя папки запускается с капитала A, в то время как имя файла запускается с маленького a.

Можно использовать любые конвенции CaPiTaLiZaTion, которые Вы хотите для своих папок и файлов.

Альтернатива

Альтернатива должна создать названный файл index.html в каждой папке, где Вы хотите, чтобы папка и файл имели то же имя. Именование файла HTML index.html и помещение их в названной папке, например. example.com/articles/title, таким образом, полный путь example.com/articles/title/index.html, также выполнит то, что Вы спрашиваете.

Когда каждый вводит https://example.com/articles/title веб-сервер будет служить index.html страница и браузеры не покажут index.html. Это покажет только https://example.com/articles/title.

Точно так же можно было назвать файл https://example.com/article/index.htmlпоказать то, что Вы хотите, когда каждый вводит https://example.com/article.

Благодаря Harry для альтернативы и некоторых других точек.

14
ответ дан 23 November 2019 в 08:41

Вопросом является возможный дубликат https://stackoverflow.com/questions/34550299/aws-s3-hosting-url-rewrite. Если Вы посмотрите в комментариях, то Вы будете даже видеть, что его точный вариант использования удаляет .html из его URL.

В то время как принятый ответ предоставляет допустимое, рабочее решение, я думаю, что это - случай проблемы XY. В этом случае то, в чем Вы действительно нуждаетесь, является системой Перезаписи URL, которая обходится без проблемы соглашения о присвоении имен в целом. В то время как предыдущая статья не относится к AWS S3, она объясняет понятие довольно хорошо. К сожалению, так как S3 не является веб-сервером по сути, он не имеет URL, Переписывают функциональность, но он действительно имеет Перенаправления Веб-страницы, которые, как указано в ответе дублирующегося вопроса, смогли делать это.

2
ответ дан 23 November 2019 в 08:41

Другие вопросы по тегам:

Похожие вопросы: