অ্যাপাচি HTTP- এ পুনরায় লেখার মাধ্যমে পুনঃনির্দেশ করুন


0

ওএস এক্স ইয়োসেমাইটে অ্যাপাচি ২.৪ ব্যবহার করা। এই ভার্চুয়াল হোস্টটির পুনঃনির্দেশ করতে http://server.kibanaএবং এতে পরিবর্তন http://www.server.kibanaকরতে হবেhttps://server.kibana

ভোস্ট এখানে:

<VirtualHost *:8443>
            ServerName www.server.kibana
            ServerAlias server.kibana
            ServerAdmin admin@server.kibana
           # RedirectPermanent http://server.kibana https://server.kibana
           # DocumentRoot /usr/local/var/www/kibana-4.0.2-darwin-x64/src/public
            SSLEngine on
            SSLCertificateFile "/usr/local/etc/apache2/2.4/ssl-keys/server.crt"
            SSLCertificateKeyFile "/usr/local/etc/apache2/2.4/ssl-keys/server.key"
        #
        # Proxy
        #
    ProxyRequests Off
    <Proxy *>
        Order Allow,Deny
        Allow from all
        AuthType Basic
        AuthName "Authenticated proxy"
        AuthUserFile /usr/local/etc/apache2/2.4/elastic.htpwd
        Require valid-user
    </Proxy>
        ProxyPass / http://127.0.0.1:5601
        ProxyPassReverse / http://127.0.0.1:5601
        RewriteEngine on
        RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
        RewriteRule .* http://127.0.0.1:5601%{REQUEST_URI} [P,QSA]
            ErrorLog /usr/local/var/log/apache2/kibana_error.log
            LogLevel warn
            CustomLog /usr/local/var/log/apache2/kibana_access.log combined
</VirtualHost>

কোন পরামর্শ কী যোগ করবেন বা কীভাবে রাইরাইটরুল এবং রিরাইটকন্ডকে সংশোধন করবেন? ধন্যবাদ!

উত্তর:


0

আপনি এটি ব্যবহার করতে পারেন এবং আপনার শংসাপত্রটি যে ডোমেনে জারি হয়েছিল তাতে পুনরায় লিখতে পারেন:

RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://www.example.com$1 [R=301,L]

অথবা সার্ভারের অংশগুলিতে HTTP অ্যাক্সেস সক্ষম করার সময় আপনি এসএসএল প্রয়োগ করতে চান এমন ফাইলটি অন্তর্ভুক্ত করুন।

# Script to require SSL

<If "%{HTTPS} == 'on'">
    SSLOptions +StrictRequire
    SSLRequireSSL
</If>
<Else>
    RedirectMatch permanent ^/?(.*) https://www.example.com/$1
</Else>

আপনি %{SERVER_NAME}পরিবর্তে ব্যবহার করতে পারে www.example.com। এটি একটি সাধারণ শংসাপত্রের সাথে ভাল কাজ করে।

RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=301,L]

পরিবর্তনশীল %{HTTP_HOST}অনুরোধ থেকে হোস্টনাম রয়েছে এবং পরিবর্তে ব্যবহার করা যেতে পারে www.exaxmple.com। তবে এটি শংসাপত্রের সাথে মেলে এমন কোনও হোস্ট-নেম নাও হতে পারে। এটি মাল্টি-ডোমেন শংসাপত্রগুলির সাথে কাজ করে।

RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*) https://%{HOST_NAME}$1 [R=301,L]

UseCanonicalName dnsআপনার কনফিগারেশনে যুক্ত করা ডিএনএস থেকে সরবরাহ UseCanonicalName dnsকরবে SERVER_NAME। তবে আপনাকে ডিএনএস পছন্দসই ডোমেন সরবরাহ করে তা নিশ্চিত করতে হবে। আপনি যদি এই কাজটি পেয়ে থাকেন তবে আপনি সমস্ত সার্ভারের জন্য একই কনফিগারেশনটি ব্যবহার করতে সক্ষম হতে পারেন। বিকল্পভাবে, আপনি সার্ভারের নাম সরবরাহ করতে একটি ছোট সার্ভার নির্দিষ্ট ফাইল অন্তর্ভুক্ত করতে পারেন।

আপনাকে এইচটিটিপি এবং এইচটিটিপিএসের জন্য বিভিন্ন পোর্টে শুনতে হবে। আপনার পুনর্লিখন সক্ষম করার আগে প্রতিটি পরীক্ষা করুন। এটি কোনও সাইটের জন্য একটি ন্যূনতম কনফিগারেশন যা এইচটিটিপি এবং এইচটিটিপিএস উভয়ই শোনে এবং সমস্ত অনুরোধ এইচটিটিপিএসে পুনর্নির্দেশ করে। অ-মানক বন্দরগুলি ব্যবহার করা হলে পুনঃনির্দেশের জন্য একটি বন্দর দরকার হবে। এই কনফিগারেশনটি ভার্চুয়াল হোস্ট সংজ্ঞার বাইরে কনফিগার করা ডিরেক্টরি অ্যাক্সেসের উপর নির্ভর করে।

<VirtualHost *:80 *:443>
    ServerAdmin webmaster@systemajik.com
    DocumentRoot /var/www/
    ServerName  www.example.com
    ServerAlias example.com

    SSLEngine On
    SSLCipherSuite HIGH:MEDIUM
    SSLCertificateFile      /etc/ssl/certs/www.example.com-cert.pem
    SSLCertificateKeyFile   /etc/ssl/private/www.example.com-key.pem
    SSLCACertificatePath    /etc/ssl/certs/

    RewriteEngine On
    RewriteCond %{HTTPS} !=on [NC]
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R=301,L]

</VirtualHost>

আমি যোগ করেছি RewriteCond %{HTTPS} !=on [NC] RewriteRule ^/(.*) https://127.0.0.1:5601/$1 [R=301,L] এবং এটি কাজ করে না। এটি এখনও আমাকে "এটি কাজ করছে" অ্যাপাচি ডিফল্ট পৃষ্ঠাতে পুনঃনির্দেশ করে ((এবং কীভাবে ফাইলটি চেষ্টা করবেন?
ড্র করেছেন

সুতরাং আমার ক্ষেত্রে একমাত্র কার্যকরী সমাধান হ'ল আপনার লিখিত স্ক্রিপ্ট। এটি কাজ করে (আমি ব্রাউজারের ক্যাশেটি সাফ করার পরে, তবে অন্য সমাধানটি হয় না (()) কেবল বলে নেওয়া যাক আমার দুটি পৃথক হোস্ট আছে এবং আমি এই স্ক্রিপ্টটিকে আরও সর্বজনীন করতে চাই (উভয় হোস্টের জন্য কাজ করে) আমার কীভাবে পরিবর্তন করা উচিত https://www.example.com/$1? সেখানে রয়েছে? এর মতো কোনও পরিবর্তনশীল %{REQUEST_URI}বা অন্য কিছু? বা আমি কি প্রতিটি ভার্চুয়াল হোস্টের জন্য এটি নিজস্ব স্ক্রিপ্ট তৈরি করব? এটি আপনার পক্ষে ভাল ধারণা বলে মনে হয় না ((
ড্রু

@ অ্যান্ড্রু প্রথম বিকল্পটি আমার পক্ষে কাজ করে তবে আমি পছন্দসই হোস্টনামটি আইপি ঠিকানা নয় use কোনও পথ সরবরাহ না করা হলে আমি কাজের প্রতিক্রিয়া সম্পাদনা করেছি। হোস্ট-নেম সেট করার জন্য বিকল্পগুলি সরবরাহ করতে আমি প্রতিক্রিয়া আপডেট করেছি,
বিলথোর

আপনি দয়া করে তিনটি ক্ষেত্রে একটি উদাহরণ লিখতে পারেন। আমি এগুলি সব চেষ্টা করেছি তবে নিশ্চিত নই যে আমি এটি সঠিক উপায়ে করেছি কিনা ... আমি সর্বদা একই রকম হয়ে থাকি: 500 অভ্যন্তরীণ সার্ভার ত্রুটি
ড্রয়

@ অ্যান্ড্রু আপনি কি ত্রুটি লগ চেক করেছেন? আমার আজকের রাত অবধি পোস্টটি পরীক্ষা ও আপডেট করার সময় হবে না।
বিলথোর

0

এই কোডটি "রিরাইটইঙ্গাইন অন" এর নীচে যুক্ত করার চেষ্টা করুন এবং দেখুন এটি কার্যকর হয় কিনা।

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://server.kibana/$1 [R=301,L]

এটা কিছুই করে না। আমাকে কেন বন্দরটি পরীক্ষা করতে হবে?
ড্র হয়েছে

দুটি লিঙ্কই হ'ল এইচপি। HTTP অ্যাক্সেস পোর্ট 80 ডিফল্টরূপে, তার www বা অ- www হোক whether 80 নম্বর বন্দর থেকে বা HTTP অ্যাক্সেসের মাধ্যমে আসা ট্র্যাফিককে উপরের কোড সহ https (443 পোর্টের মাধ্যমে) ফরোয়ার্ড করা উচিত। আপনি ব্রাউজার ক্যাশে এটি পরীক্ষা করার আগে রিফ্রেশ করার চেষ্টা করেছিলেন?
কেনউইএলএল

আমি https বন্দরটি উল্লেখ করেছি <VirtualHost *:8443>। এটা কি যথেষ্ট হবে না? আচ্ছা আমার অ্যাপাচি HTTP- র জন্য 8080 এবং https এর জন্য 8443 পোর্ট শুনতে পায়, কিন্তু পিএফ ফায়ারওয়াল সমস্ত ট্র্যাফিক 80 এবং 443 পোর্টে পুনর্নির্দেশ করে। উপরের কোডে কোন পোর্টটি লিখতে হবে?
ড্র হয়েছে

টিপ ক্যাশে সাফ করার জন্য যাইহোক থ্যাঙ্কস। মনে হচ্ছে বিলটিহর স্ক্রিপ্টটি একমাত্র কার্যকরী সমাধান।
ড্র হয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.