HTTP к HTTPS Redirect добавляет оба URL - PullRequest
0 голосов
/ 03 сентября 2018

Я работаю над сайтом, который в основном настраивается, и HTTP неправильно перенаправляется на HTTPS.

Сайт загружается нормально, но версия HTTP не перенаправляется должным образом, поэтому отображается как дублированный контент.

Я смотрел на это несколькими разными способами и рисую бланк.

Переписать HTTP-запрос для index.php просто на имя домена

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^index\.php$ https://www.*****.com [R=301,L]

301 Redirect - перенаправить на index.php, если веб-страница отсутствует

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule . index.php [L]

Исправлена ​​проблема канонизации - добавьте www в запрос HTTP, если он отсутствует

RewriteCond %{http_host} ^insynergystl.com [nc]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.insynergystl.com/$1 [r=301,nc] 

Всегда использовать https для безопасных соединений

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

1 Ответ

0 голосов
/ 03 сентября 2018

Попробуйте переадресовать ваш https в начало списка перенаправлений в .htaccess, в качестве альтернативы самой конфигурации вашего виртуального хоста.

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Вы можете отлаживать перенаправления, если установите уровень журнала немного выше, просто не забудьте выключить его сразу после тестируемой части:

LogLevel alert rewrite:trace8
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
LogLevel alert rewrite:trace3

http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging

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

...