كيفية التأكد من أن Apache يخدم دائمًا صفحة واحدة عبر HTTPS؟
-
21-09-2019 - |
سؤال
أرغب في إعادة توجيه جميع الاتصالات من 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]
العلم [أو] بعد إعادة كتابة هو حرفيًا ، "أو" ، وهذا هو السبب في أن الحالة الأخيرة لا تملكها
لا تنتمي إلى StackOverflow