كيفية التأكد من أن Apache يخدم دائمًا صفحة واحدة عبر HTTPS؟

StackOverflow https://stackoverflow.com/questions/2292919

سؤال

أرغب في إعادة توجيه جميع الاتصالات من htt_p: //www.example.com/abc.html إلى http_s: //www.example.com/abc.html. ما أوامر mod_alias أو mod_rewrite ستعمل من أجل هذا؟ لقد حاولت:

RewriteEngine on
RewriteCond %{HTTPS} =off
RewriteRule $abc\.html^ https://www.example.com/abc.html [R]

في كلا .htaccess و httpd.conf ولكن هذا لا يعمل. إنه يعمل إذا كانت السلسلة الأولى في Rewriterule هي أي شيء آخر (مثل abz.html) ولكن ليس إذا كان ABC.HTML. ABC.HTML هو ملف حقيقي على الخادم (وليس إعادة توجيه أخرى). الخيارات تتبع linklinks موجودة في توجيه الدليل المناسب.

شكرا جزيلا.

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

المحلول

سيتيح لك شيء ما على غرار ما يلي إعادة توجيه صفحات غير SSL إلى إصدارات SSL (على افتراض أنك تقوم بتشغيل SSL على المنفذ 443):

RewriteEngine on

# Limited redirects
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ^/abc\.html$ [OR,NC]
RewriteCond %{REQUEST_URI} ^/def\.html$ [OR,NC]
RewriteCond %{REQUEST_URI} ^/ghi\.html$ [NC]
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

العلم [أو] بعد إعادة كتابة هو حرفيًا ، "أو" ، وهذا هو السبب في أن الحالة الأخيرة لا تملكها

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top