#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