سؤال

وهذا بعد آخر .هتكس السؤال.و سبق أن عملت مراجعة الأدبيات.سوف نقدر أي مساعدة.

المتطلبات:

  1. قوة HTTPS فقط عدد قليل من عناوين المواقع.
  2. المتصفح لا يجب أن أقول جزئيا تشفير الصفحة SSL صفحات.

أنا باستخدام CodeIgnitor وأنب base_url في config.php إلى:

$config['base_url'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://' ;
$config['base_url'] .= $_SERVER['HTTP_HOST'];
$config['base_url'] .= preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME'])).'/';

لذلك ، إذا كان عنوان URL يتم الوصول إليها مع https:// جميع الروابط الواردة في ذلك أيضا سيكون على HTTPS هذا هو لتجنب "جزئيا المشفرة صفحة" القضية.

بدأت التالية htaccess كود:

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

مع هذا أي عنوان URL وجود abc, xyz أو pqr سيتم توجيهك إلى HTTPS و أي رابط لا وجود لها ستضطر إلى HTTP.

هذا يعمل جيدا فقط في هذا هو أنه ليس قادرا على تجنب "جزئيا المشفرة صفحة" القضية.على سبيل المثال إذا كنت تذهب url http://www.example.com/abc/index.php, ، فإنه سيتم توجيهك إلى https://www.example.com/abc/index.php.لكن الروابط على هذه الصفحة يقول https://www.example.com/images/logo.png, سيتم تغيير HTTP لأن هذا الأخير كتابة القاعدة.مما يجعل الصفحة جزئيا المشفرة.

كما أنني حاولت إضافة http_referer تحقق مثل هذا لحل هذه المشكلة, لكن من الواضح أن هذا لن يحل المشكلة.لأن أي نقرات قادمة من صفحة HTTPS لن يحصل على تحويلها إلى HTTP.

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_REFERER} !^(https)(.*)$
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

فقط أريد أن أعرف إذا كان هناك طريقة أفضل وهي مشكلة بسيطة أو أفعل ذلك بطريقة خاطئة.سوف باستخدام CI السنانير بدلا من .هتكس حل هذا ؟

شكرا مقدما

هل كانت مفيدة؟

المحلول 2

حسنا .أعتقد أنني وجدت الحل .أنا اختبرت ذلك أيضا على الخادم .يعمل بشكل جيد ..مطلوب http referer الشرط أيضا في كتابة

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_REFERER} !^https(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

الآن إذا قمت بزيارة أي من الصفحات مع (abc,xyz ، pqr) فإنه سيتم توجيهك إلى https://...أيضا كل لا يتجزأ الرابط من https .وبالتالي فإن المتصفح لن تظهر جزئية التشفير تحذير (الأحمر علامة تحذير في شريط الحالة)

عند الابتعاد عن أي من هذه الصفحة صفحة على ssl بسبب التحويلية التحقق من هذه الصفحة قد تظهر جزئيا المشفرة تحذير (ولكن يمكن أن أعيش مع ذلك).بمجرد الابتعاد عن هذه الصفحة كل شيء سيكون غير ssl.

آمل أن يساعد هذا شخص !!!

نصائح أخرى

يمكنك وضع محتويات ثابتة في مجال مختلف مثل static.example.com وتعطيل HTTPS HTTP توجيه مثل هذه الطلبات.

استخدام //static.example.com/… الإشارة إلى أن الموارد إلى استخدام نفس URI مخطط الوثيقة الإشارة الواردة في الاختبار في RewriteRule إن مثل هذه الموارد هو المطلوب:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !=static.example.com
RewriteRule !(^|/)(abc|xyz|pqr) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top