ওয়ার্ডপ্রেস https প্লাগইন ব্যবহার করে এডাব্লুএস ইএলবি এবং ওয়ার্ডপ্রেস সাইট সহ অন্তহীন পুনর্নির্দেশ লুপ


11

আমি ওয়ার্ডপ্রেস 3.2.1 চালিত আমার উবুন্টু সার্ভারের দিকে ইঙ্গিত করতে একটি AWS ELB কনফিগার করেছি। সার্ভারে যতক্ষণ না আমি এটিকে লোড ব্যালান্সারের পিছনে রেখেছি সবকিছুই দুর্দান্ত কাজ করেছে।

আমি লোড ব্যালেন্সার পোর্ট 80 থেকে পোর্ট 80 এবং পোর্ট 443 থেকে পোর্ট 80 এ ফরোয়ার্ড সেটআপ করি।

কনুই থেকে শিরোনামগুলি পরীক্ষা করতে আমি আমার ভার্চুয়াল হোস্ট ফাইলটি সেটআপ করি:

RewritEngine অন
RewritCond% {HTTP: এক্স-ফরওয়ার্ড-প্রোটো
htt! Https RewritRule! / অবস্থা https: //% {SERVER_NAME}% {REQUEST_URI T_ [এল, আর]

এখন যখনই আমি কোনও https url এ যাই আমি এই বার্তাটি পাই:

এই ওয়েবপৃষ্ঠায় একটি পুনঃনির্দেশ লুপ রয়েছে https://mywebsite.com/securepage/
এ ওয়েবপৃষ্ঠা অনেকগুলি পুনঃনির্দেশের ফলাফল করেছে

ওয়ার্ডপ্রেস https প্লাগইনটি অক্ষম করার সাথে সাথেই
( http://wordpress.org/extend/plugins/wordpress-https/ )
পৃষ্ঠাগুলি কাজ করে তবে এখন মিশ্র সামগ্রীতে পূর্ণ। যে পৃষ্ঠাগুলি https হওয়া উচিত সেগুলি আর https নয়।

কনুইয়ের পরিবর্তে সরাসরি সার্ভার অ্যাক্সেস করার সাথে সাথে এটি আবার কাজ করে।

আমি কীভাবে এটি এডাব্লুএস ইএলবির সাথে কাজ করতে পারি তা সম্পর্কে কোনও ধারণা?


আপনি কি পার্মালিঙ্ক আপডেট করেছেন? সাধারণত আমাদের ওয়ার্ডপ্রেসে permalink সেটিংটি আপডেট করতে হবে
user905953

উত্তর:


13

আপনি আপনার ELB কনফিগারেশনটি পোস্ট না করেই অনুমানের ঝুঁকি ফেলবেন যে ELB এইচটিটিপিএস (443 / টিসিপি) ট্রাফিকটিকে HTC (80 / tcp) তে ইসি 2 ইভেন্টে পুনঃনির্দেশ করছে। তারপরে আপনি .htaccessএবং প্লাগইন এটি HTTPS এ পুনর্নির্দেশের চেষ্টা করছেন কারণ এটি HTTP- র মাধ্যমে দেখা যাচ্ছে।

নীচে আপনার ইসি 2 কনসোলটি একবার দেখুন Network & Security > Load Balancersএবং আমি কল্পনা করব যে আপনি Port Configurationলাইনের সাথে কিছু বলছেন443 forwarding to 80 (HTTPS, Certificate: blah)


1
এখানে এই ব্যক্তি একই সমস্যা ছিল। forums.aws.amazon.com/…
চিকেনফুর

1
এবং আপনার ডিভাইসে এক অনুরূপ stackoverflow.com/questions/5741210/...
ChickenFur

আপনার ডানদিকে আমি 443 থেকে 80 ফরোয়ার্ড করছি
চিকেনফুর

আমি এখন ২ বছরেরও বেশি সময় ধরে আমার ক্লায়েন্টদের একজনকে অ্যাডাব্লুএস এর অধীনে চালাচ্ছি ... আমি যখন আপনার প্রশ্নটি পড়ি তখন এটিই প্রথম জিনিস যা আমার মাথায় সন্দেহজনক হিসাবে popুকে পড়ে।
জেরেমি বাউস

1
এলবি 443 থেকে 443 পয়েন্টে পরিবর্তন করা এটি ঠিক করে দিয়েছে :) ধন্যবাদ!
চিকেনফুর

17

এটি আপনার httpd.confবা একটিতে যুক্ত করার চেষ্টা করুন.htaccess

SetEnvIfNoCase X-FORWARDED-PROTO "^https$" HTTPS

লোড ব্যালেন্সার + এইচটিটিপিএস ব্যবহার করার সময়, আপনার ওয়েবসার্ফটি এ বিষয়ে অবগত নয় যে এইচটিটিপিএস সামনের প্রান্তে ব্যবহার করা হচ্ছে, সুতরাং এইচটিটিপিএস সাইটে পুনর্নির্দেশের চেষ্টা চালিয়ে যান, যখন সত্যই, এইচটিটিপিএস ইতিমধ্যে ব্যবহৃত হচ্ছে।

উপরেরগুলি অ্যামাজনের লোড ব্যালান্সার ( X-Forwarded-Proto: https) কে পরিবেশের পরিবর্তনশীল হিসাবে প্রেরণ করে যা শিরোনামটি অনুবাদ করবে যা ওয়ার্ডপ্রেস এবং অন্যান্য পিএইচপি স্ক্রিপ্টগুলি বুঝতে পারে ( HTTPS=1)


3
এটি সঠিক উপায়ে করা হবে, এসএসএল ডিক্রিপশন
ইএলবিতে

1
আপনি যদি এনজিনেক্সে থাকেন তবে অনুরূপ সংযোজন হবে:fastcgi_param HTTPS on;
আকাশ বুধিয়া

এই পোস্টটি আমার ঘন্টা দীর্ঘ ব্যথা শেষ ... THX
Daywalker

3

আমাজন অনুসারে এখানে https://d0.awsstatic.com/ whitepapers/deploying-wordpress-with-aws-elastic-beanstalk.pdf ঠিক আছে:

/** Detect if SSL is used. This is required since we are terminating SSL either on CloudFront or on ELB */ 
if (($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https') OR ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
    {$_SERVER['HTTPS']='on';}

আমি এখনও অন্তহীন লুপ দিয়ে শেষ করেছি, তাই আমি আমার ওয়ার্ডপ্রেস কনফিগারেশনটি এখান থেকে পরিবর্তন করেছি:

define('WP_HOME','http://www.example.com');
define('WP_SITEURL','http://www.example.com');

প্রতি:

define('WP_HOME','https://www.example.com');
define('WP_SITEURL','https://www.example.com');

এটি ব্যবহারকারীদের https তে বাধ্য করবে, এমনকি তারা টাইপ করলেও এটি অফলাইনে সাইটটিকে বিকাশ করা সহজ করে তোলে কারণ আপনি কেবলমাত্র স্থানীয় হোস্টে ডাব্লুপিএইচআমো আপডেট করে এবং https আর ডিফল্ট নয় is


1

অন্য একটি সহায়ক পোস্ট থেকে নিজেকে উদ্ধৃত করে https://serverfault.com/a/858308/450836 :

আমার জন্য এটি $ _SERVER ['HTTPS'] = 'চালু' সেট করা যথেষ্ট ছিল; wp-config.php এ। আমি AWS ELB ব্যবহার করছি যা ELB- তে এসএসএল সমাপ্ত করে। অতএব nginx পোর্ট 80 (বার্নিশ পরে 8080) এর অনুরোধটি গ্রহণ করে এবং মনে হয় যে সাইটটি ইতিমধ্যে https ব্যবহার করে আপনি স্পষ্টভাবে পিএইচপি ...

নন-এসএসএল ইএলবি শ্রোতার জন্য আমি সমস্ত ট্র্যাফিক https এ ডিফল্ট শ্রোতা হিসাবে পুনঃনির্দেশ করতে পৃথক কনফিগার ব্যবহার করি।


0

@ টিম প্রস্তাবিত হিসাবে, $_SERVER['HTTPS']='on';wp-config.php এ এটি আমার জন্য কৌশলটি করেছে this

আমি এইচটিটিপিএসকে বাধ্য করার জন্য এটি আমার .htaccess ফাইলে যুক্ত করেছি:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

0

AW ALB তে অনেকগুলি পুনঃনির্দেশ সমস্যার সমাধান করুন

শিরোনাম মডিউল সক্ষম করুন তারপরে অ্যাপাচি কনফিগারেশনে নিম্নলিখিত এন্ট্রি যুক্ত করুন

SetEnvIf এক্স-ফরওয়ার্ড-প্রোটো "https" HTTPS = অন অনুরোধহাইডার এইচটিটিপিএস সেট করুন "env = HTTPS এ"

    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.