Мой сайт должен перенаправлять все ссылки на мой сайт на домен https: //, но при вводе определенным образом он не работает.
https://www.example.com --- работает
example.com --- работает
www.example.com --- не работает, переходит на http: //...
Сайт вызываетглобальный колонтитул из отдельного файла. Когда это не работает, выдает эту ошибку:
Access to XMLHttpRequest at 'https://www.example.com/header.html'
from origin 'http://www.example.com' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check: The
value of the 'Access-Control-Allow-Credentials' header in the response
is '' which must be 'true' when the request's credentials mode is
'include'. The credentials mode of requests initiated by the
XMLHttpRequest is controlled by the withCredentials attribute.
Этот код вызывает файл заголовка:
var headerURL = 'https://www.example.com/header.html';
var xhr = new XMLHttpRequest();
xhr.open('POST', headerURL, true);
xhr.withCredentials = true;
xhr.onreadystatechange = function()
{
if (xhr.readyState === 2)
{
$('header').load(headerURL + ' header', function()
{
...do stuff with the header...
});
}
}
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON);
Вот мой файл .htaccess:
RewriteEngine on
RewriteCond %{HTTPS} !=on
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/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ $1.html
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
Redirect /page1.html /page1
Redirect /page2.html /page2
Redirect /page3.html /page3
Redirect /page4.html /page4
Redirect /page5.html /page5
ErrorDocument 404 /404.shtml
ErrorDocument 500 /500.shtml
# Enable CORS
Header always set Access-Control-Allow-Origin "https://www.example.com"
Header always set Access-Control-Allow-Origin "http://www.example.com"
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
<IfModule mod_expires.c>
ExpiresActive on
...Lots of ExpiresByType rules...
</IfModule>
Я действительно ничего не знаю о записи файлов .htaccess. Это всего лишь фрагменты, которые я обнаружил, которые сделали то, что мне было нужно (удалите «.html», перенаправили на пользовательские страницы ошибок и задали пользовательские окончания, ...)