2015-11-13 2 views
-1

У меня есть один файл PHP, который обрабатывает обработку кредитных карт. Он начинается как форма ввода номера кредитной карты, затем становится экраном подтверждения (с указанием номера кредитной карты), а затем еще раз обрабатывает и отображает результаты. Все три загрузки будут выполнены с помощью PHP-представлений (я понимаю, что подтверждение может быть лучше, чем Javascript, но я его не написал). Это единственный файл в каталоге, который обрабатывает кредитные карты, и поэтому он является единственным, для которого требуется соединение httpS.Как заставить HTTPS на некоторых страницах? (PHP)

Я попытался сделать это с помощью массива $ _SERVER, просмотрев протокол, используемый для соединения с префиксом SCRIPT_URI (или другой записи), но ни один из них не имел префикс.

Есть простой способ сделать это ... я хочу на 5 SSL страниц домашней страницы, Логин, зарегистрируйтесь, контактная страница, и если пользователь на сайте другой странице, то он должен быть на не версии Ssl

Извините за вопросы, но мои поиски до сих пор здесь не раскрыли рабочего решения, и я боюсь, что не знаю, что такое лучшая практика.

+2

«следовательно, это единственный, который нуждается в http-связи» - просто засуньте весь сайт, используя SSL. Это проще, он защищает данные, которые могут обойти ваши пользователи, даже если вы этого не сделаете, и это дает вам лучший SEO. – Quentin

+0

Помимо истинной вещи, упомянутой @quentin, вы должны взглянуть на возможности перезаписи http-серверов, например 'mod_rewrite' для http-сервера apache. Он позволяет перенаправлять один или несколько запросов, например, для переключения между схемами протокола. – arkascha

+1

Пожалуйста, (* пожалуйста! *), Если вы передаете номера кредитных карт, вы должны быть абсолютно уверены, что соблюдаете правила PCI. Существуют очень строгие правила в отношении того, что вы делаете. HTTPS - это лишь небольшая часть этих правил. Вы должны быть уверены, что ваше программное обеспечение, ваш сервер и ваши процессы совместимы с PCI. – Simba

ответ

0

Вы должны исследовать $ _SERVER ['HTTPS']. Это будет иметь пустое значение, если используется https, и пустое значение в противном случае.

Если вы обнаружите соединение без https, вы можете перенаправить пользователя, например. используя метод php header().

Другой способ достижения этой цели будет использовать .htaccess конфигурацию (если вы работаете на веб-сервере Apache):

RewriteCond %{HTTPS} !=on 
RewriteRule ^creditcard\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R] 

Использование протокола HTTPS для всего сайта действительно хороший вариант, тоже.

0

Предположим, вы хотите перенаправить 4 конкретные страницы на HTTPS,

  • page1.php
  • page2.php
  • page3.php
  • page4.php

то сделал бы что-то вроде этого:

Создать .htaccess файл в корневом каталоге и добавьте в него следующие строки.

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

#redirect www.yourdomain.com to yourdomain.com (or any other subdomain) 
RewriteCond %{HTTP_HOST} !^yourdomain.com$ [NC] 
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301] 

#force https for certain pages  
RewriteCond %{HTTPS} !=on 
RewriteRule ^(page1\.php|page2\.php|page3\.php|page4\.php)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R] 
Смежные вопросы