@easycode
не боюсь задавать глупые вопросы ))

Не работает HTTP-аунтификация на HTTPS-сайте?

Имеется сайт (не Битрикс!) с которым настроена интеграция с 1С.
1С-ка посылает запросы по адресу: http://сайт/bills/1c_exchange
Сайт работает по HTTPS, потому в .htaccess:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{THE_REQUEST} !/bills/1c_exchange [NC]
RewriteRule ^(.*)$ https://сайт.ru/$1 [R=301,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php


В итоге HTTP-аунтификация не проходит, на стороне сайта такой скрипт:

if ($_SERVER['PHP_AUTH_USER']) {
    if ($_SERVER['PHP_AUTH_USER'] == $options['1с_login'] and
        $_SERVER['PHP_AUTH_PW'] == $options['1c_password'] ) {
        
        if ($mode == 'checkauth') {
          echo "success\nexchange_1c_key\n$exchange_1c_key";
          exit();
        }

    } else {
        exit('Ошибка доступа! Неправильный логин или пароль!');
    }
} else {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    exit(); 
}


Проверка через браузер - он бесконечно количество раз спрашивает логин и пароль : 5e688e3122a79275861051.png
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@easycode Автор вопроса
не боюсь задавать глупые вопросы ))
Так как на моём хостинг был: PHP FastCGI, то после того как я дописал в конец .htaccess строчку:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


всё заработало как и должно было!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы