Vue. js работает на ElasticBeanstalk со странными перенаправлениями - PullRequest
0 голосов
/ 07 февраля 2020

Я запускаю приложение Vue. js на экземпляре AWS EBS. Сайт работает отлично, и недавно мы начали предварительную визуализацию некоторых страниц в stati c HTML по причинам SEO. Мы также создали правила в файле .htaccess, которые обрабатывают, когда эти файлы используются.

У меня есть файл .ebsextension, который имеет расширение конфигурации, чтобы всегда перенаправлять на SSL:

files:
   /etc/httpd/conf.d/httpd-redirect.conf:
     mode: "000644"
     owner: root
     group: root
     content: |
       RewriteEngine On
       RewriteCond %{HTTP:X-Forwarded-Proto} !https
       RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker
       RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Эта часть работает нормально, все запросы, если они не https: / / получить перенаправление, поэтому здесь нет проблем.

Файл .htaccess:

ErrorDocument 404 /404
<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{HTTP_HOST} ^www\.example\.com
  RewriteRule (.*)$ https://example.com/$1 [R=301,L]

  #redirect chapters 'folder' to first chapter slide
  RewriteCond %{REQUEST_URI} ^/chapters/?$
  RewriteRule (.*) /chapters/chapter-1/ [R=301,L]

  #send crawlers to prerendered html page
  RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|Facebot|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp [NC,OR]
  RewriteCond %{QUERY_STRING} _escaped_fragment_
  RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
  RewriteCond %{REQUEST_URI} !/$
  RewriteRule ^(.*)$ $1.html

  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

Поэтому, когда я делаю запрос на страницу без завершающего sla sh, происходит следующее:

# wget http://example.com/chapters/chapter-1
--2020-02-07 13:02:02--  http://example.com/chapters/chapter-1
Resolving example.com (example.com)... 1.2.3.4, 5.6.7.8
Connecting to example.com (example.com)|1.2.3.4|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://example.com/chapters/chapter-1 [following]

--2020-02-07 13:02:05--  https://example.com/chapters/chapter-1
Connecting to example.com (example.com)|1.2.3.4|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/chapters/chapter-1/ [following]

--2020-02-07 13:02:06--  http://example.com/chapters/chapter-1/
Connecting to example.com (example.com)|1.2.3.4|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://example.com/chapters/chapter-1/ [following]

--2020-02-07 13:02:07--  https://example.com/chapters/chapter-1/
Connecting to example.com (example.com)|1.2.3.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 103126 (101K) [text/html]
Saving to: ‘chapter-1’

chapter-1               100%[=====================================================================================>] 100.71K  53.6KB/s    in 1.9s

Если вы видите его перенаправление на https (что правильно), но затем, потому что нет / в конце, его перенаправление обратно на http://example.com/chapters/chapter-1/ (теперь с трейлингом sla sh), а затем, наконец, вернемся к https-версии URL с завершающим sla sh.

Я не могу go вперед и убедиться, что все URL имеют конечный номер sh, к сожалению, некоторые из них не нуждаются в этом, когда присутствуют определенные динамические c идентификаторы и т.д. c. Я хотел бы просто перенаправить один раз на https с завершающим sla sh, но я не могу заставить его работать. Или даже просто перенаправить на https без, а затем на https с sla sh (за исключением странного среднего перенаправления обратно на http).

Я подозреваю, что это связано с тем, что в Интернете root есть папка под названием главы с подпапкой глава-1, и apache запутывается. Возможно, из-за правила перезаписи -d?

Есть идеи?

Спасибо! Ian

...