Как переписать http-запросы на https на определенных страницах моего сайта?

#php #codeigniter

#php #codeigniter

Вопрос:

Привет, люди. Я вижу, что эта тема повторяется снова и снова на SO, но я попробовал несколько решений, опубликованных здесь, и ни одно из них не сработало для меня. Итак, в принципе, я знаю, как изменить определенные страницы на моем сайте, чтобы они были в режиме https. Однако я не знаю, как переписать http-запросы, которые находятся ВНУТРИ кода. Так, например, если моя страница, скажем, payment.php содержит ссылку, которая загружает внешний файл ccs, подобный этому -> http://example.com/somecss.css тогда google Chrome увидит это как опасную ссылку и отобразит красный крестик рядом с URL сайта. Теперь я протестировал это вручную, изменив все http-запросы внутри кода на https, и висячий замок волшебным образом стал зеленым, поэтому, я думаю, мне нужно какое-то правило перезаписи модов, которое переписало бы все ссылки на этих конкретных страницах так, чтобы они содержали https. Надеюсь, я объяснил это достаточно хорошо. Кто-нибудь может мне помочь? Я использую codeigniter.

Комментарии:

1. Проверяйте $_SERVER[‘HTTPS’] при создании URL-адреса для локальных ресурсов.

Ответ №1:

Чтобы переписать http-запросы внутри кода, вы должны использовать там относительные пути протокола.

 <link rel="stylesheet" href="//www.domain.com/style.css"> 
<script src="//www.domain.com/script.js"></script> 
  

Он будет автоматически использовать протокол родительской страницы

Ответ №2:

Вы должны убедиться, что пользователь просматривает ваш сайт по защищенному соединению. Вы можете перенаправить пользователя на безопасное соединение (https: //), используя .htaccess файл, содержащий следующие строки:

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

Пожалуйста, обратите внимание, что .htaccess должен быть расположен в главной папке веб-сайта.

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

 RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
  

.htaccess Файл должен быть помещен в папку, где вам нужно принудительно использовать HTTPS.

Комментарии:

1. да, я использую это, и это работает нормально, но это не переписывает http-запросы внутри кода.

2. О! вы имеете в виду css и javascript?

3. Да, используя относительные пути протокола. Для правильного форматирования я разместил это как ответ вместо комментария. Надеюсь, это поможет 🙂 С уважением, Дипу С Натх