Статический веб-сайт AWS S3, доступный по адресу /page.html и не / страница

#amazon-web-services #amazon-s3

#amazon-веб-сервисы #amazon-s3

Вопрос:

Я новичок в AWS и использую S3 для размещения своего статического веб-сайта! У меня есть HTML-файл, page.html и он должен быть доступен по адресу mydomain.com/page . Однако он доступен только по адресу mydomain.com/page.html :(. Как я могу это исправить?

Ответ №1:

К сожалению, если вы хотите, чтобы это работало, есть несколько решений, которые вы можете попробовать.

Во-первых, создав индексный документ во вложенной папке, т.Е. /page/index.html вы сможете получить доступ к своему сайту на /page/ . Это будет хорошо работать, если вы используете иерархию.

Однако, если у вас много-много страниц, вам нужно будет использовать другое решение, которое может переписать URL-адрес клиентского сайта в ваш .html файл.

Для этого вы можете использовать CloudFront с функцией Lambda @Edge, чтобы выполнить это на Origin Request этапе. Эта функция может выглядеть аналогично приведенной ниже.

 import json
import os
 
def lambda_handler(event, context):
    request = event['Records'][0]['cf']['request']
    
    filepath, extension = os.path.splitext(request['uri'])
    
    if not extension:
        new_uri = request['uri']   '.html'
        request['uri'] = new_uri
    
    return request
  

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

Ответ №2:

Пожалуйста, попробуйте добавить файл «.htaccess» в корневую папку каталога со следующим кодом

 #Make pages render without their extension in the URL
Options  MultiViews