Перенаправление с www на nonwww на Apache - PullRequest
0 голосов
/ 08 июня 2018

У меня проблема с перенаправлением моего сайта не на www.У меня на самом деле есть NextCloudPlus на моем RPi, но я хочу использовать свой RPI для размещения некоторых других простых сайтов.Почти все выглядит хорошо, но когда я ввожу http://www.example.com, я получаю перенаправление на https://www.example.com вместо не www.

curl -I http://www.example.com

HTTP/1.1 302 Found
Date: Fri, 08 Jun 2018 11:04:05 GMT
Server: Apache
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload
Location: https://www.example.com/
Content-Type: text/html; charset=iso-8859-1

/ sites-enabled / 000-default.conf

<VirtualHost _default_:80>
  DocumentRoot /var/www/nextcloud
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
  </IfModule>
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot /var/www/examplecom
  ServerName examplecom
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
  </IfModule>
</VirtualHost>

/ sites-enabled / examplecom.conf

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
    SSLEngine on
      SSLCertificateFile /etc/letsencrypt/live/examplecom/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/examplecom/privkey.pem
  </VirtualHost>
</IfModule>

Что я делаю не так?

1 Ответ

0 голосов
/ 08 июня 2018

Если вы запрашиваете http://www.example.com, Apache отлавливает его, чтобы перейти на VirtualHost по умолчанию, поскольку он находится на порту 80. Там вы перенаправляете на https://%{SERVER_NAME}, а здесь SERVER_NAME == www.example.com.Удалите этот VirtualHost по умолчанию, и все будет в порядке.

Кроме того, ServerName должно быть доменным именем, которое вы ожидаете для этого VirtualHost.Я бы поставил:

ServerName example.com
ServerAlias www.example.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...