https এপাচি পুনর্নির্দেশের HTTP


157

পরিবেশঅ্যাপাওয়ারের সাথে সেন্টোস

HTTP থেকে https এ স্বয়ংক্রিয় পুনঃনির্দেশ সেটআপ করার চেষ্টা করছেন

From manage.mydomain.com --- To ---> https://manage.mydomain.com 

আমি আমার httpd.conf এ নিম্নলিখিতগুলি যুক্ত করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি

 RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

কোন ধারনা?

উত্তর:


209

আমি আসলে এই উদাহরণটি অনুসরণ করেছি এবং এটি আমার পক্ষে কাজ করেছে :)

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName mysite.example.com
   Redirect permanent / https://mysite.example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName mysite.example.com
  DocumentRoot /usr/local/apache2/htdocs
  SSLEngine On
 # etc...
</VirtualHost>

তারপরে:

/etc/init.d/httpd restart


7
মনে রাখবেন যে ভার্চুয়ালহস্ট ফাইলটিতে অ্যাক্সেস থাকলেই এটি উপলব্ধ this এটি প্রস্তাবিত পদ্ধতি।
ফুচো

4
এটি httpd.conf এ পরিবর্তন করার পরে, অ্যাপাচি ওয়েব সার্ভারটি পুনরায় চালু করুন। যাতে এটি আপনার ব্রাউজারের ক্যাশেটিও প্রতিফলিত করে এবং সাফ করবে।
সুরিয়ান সুরেশ

2
আমি জানাতে চাই যে উবুন্টু 12.4 এর সাথে এই পদ্ধতিটি আমার পক্ষে কাজ করে নি, তবে প্রস্তাবিত রিরাইটারইঙ্গাইন উত্তরটি কৌশলটি করেছে।
Deane

2
আপনার কি পুনরায় চালু করতে হবে? একটি রিলোড পুনরুদ্ধার অনেক কম ধ্বংসাত্মক এবং নতুন কনফিগারেশন ফাইল আনবে। /etc/init.d/httpd reload|| service httpd reload
রেবেকা ডেসনভিল

3
যেহেতু উদ্দেশ্যটি এটি এসএসএল মোডে পুনর্নির্দেশ করা ছিল, তাই লাইনের DocumentRoot /usr/local/apache2/htdocsআর দরকার নেই
অ্যাবেল কালেজো

130
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

http://www.sslshopper.com/apache-redirect-http-to-https.html

অথবা

http://www.cyberciti.biz/tips/howto-apache-force-https-secure-connections.html


3
এটি অনুমোদিতটির চেয়ে ভাল সমাধান, কারণ আপনি পাউন্ড বা বিগআইপি-র মতো কোনও এসএসএল অফলোডারের পিছনে থাকলেও এটি কাজ করে। এই অফলোডার প্রায়শই সমস্ত বন্দরে একই বন্দরে পাস করবে এবং অনুমোদিত সমাধান সেই নির্দিষ্ট ক্ষেত্রে কাজ করবে না
স্পিরিও

1
পছন্দ করেছেন অ্যাপাচি ডকস স্পষ্টভাবে বলেছেন যে এটি এমন একটি পরিস্থিতিতে যেখানে আপনার মোড_উইরাইট
লূক মাধাঙ্গা

4
পারফরম্যান্সের জন্য পুনঃনির্দেশ ব্যবহার করে @ লুকমধঙ্গ অ্যাপাচি ডক্রেইক কম্যান্ডস। তবে তবুও, রাইরাইটইঞ্জিন সমাধানটি আরও জেনেরিকের অর্থে আরও ভাল, কারণ আমি বর্ণিত ক্ষেত্রে (অফলোডিং) এমনকি এটি কাজ করে। আমার মন্তব্যের লক্ষ্যটি হল প্রতিটি ব্যবহারকারীর দুটি উত্তরের মধ্যে চয়ন করার জন্য কী সরবরাহ করা। কিছু লোক জেনেরিক পদ্ধতি (বড় কর্পস) চায়, আবার কেউ কেউ পারফরম্যান্স চায় ... এটি একটি নিখরচায় পছন্দ।
স্পিরিও

20
এটি দুর্দান্ত, তবে আপনি যদি এটি আরও বড় করতে চান তবে এটি [আর = 302, এল, কিউএসএ] যুক্ত করুন যাতে কোনও পরামিতিও সুরক্ষিত পৃষ্ঠায় পাস হয় are এর মতো দেখতে পাওয়া উচিত:% {REQUEST_URI} [আর = 302, এল, কিউএসএ]
স্বেটোস্লাভ মেরিনভ

আমি এই লাইনগুলি ব্যবহার করেছি এবং পৃষ্ঠাটি লোড করার চেষ্টা করার সময়, প্রতিক্রিয়াটি "রিসোর্স লোড করতে ব্যর্থ: নেট :: ERR_CONNECTION_REFUSED"। আমি কি ভুল করছি?
সেরকান

98

অনুসন্ধান apache redirect http to https এবং এখানে অবতরণ। আমি উবুন্টুতে এটিই করেছি:

1) মডিউল সক্ষম করুন

sudo a2enmod rewrite
sudo a2enmod ssl

2) আপনার সাইটের কনফিগার সম্পাদনা করুন

ফাইল সম্পাদনা করুন

/etc/apache2/sites-available/000-default.conf

সামগ্রীটি হওয়া উচিত:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile    <path to your crt file>
    SSLCertificateKeyFile   <path to your private key file>

    # Rest of your site config
    # ...
</VirtualHost>
  • নোট করুন যে এসএসএল মডিউলটির শংসাপত্রের প্রয়োজন। আপনাকে বিদ্যমান একটি নির্দিষ্ট করতে হবে (যদি আপনি এটি কিনে থাকেন) বা নিজের দ্বারা স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে হবে ।

3) অ্যাপাচি 2 পুনরায় চালু করুন

sudo service apache2 restart

উবুন্টু 16.04 এবং অ্যাপাচি 2 দিয়ে কাজ করুন। ধন্যবাদ!
সিলভেস্টার ইয়াও


11

পরিবর্তে ভার্চুয়াল হোস্ট ব্যবহার করে পুনর্নির্দেশ করার পরিবর্তে মোড_উইরাইট ব্যবহারের প্রস্তাব দেওয়া উপায় নয়।

সেক্ষেত্রে আপনি যদি মোড_আররাইট ব্যবহার করতে ঝোঁক হন:

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same 
location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in
# httpd.conf or .htaccess context

রেফারেন্স: এইচটিপিডি উইকি - পুনর্লিখন এইচটিটিপিটিওএইচটিটিপিএস

আপনি যদি 301 স্থায়ী পুনর্নির্দেশের সন্ধান করছেন, তবে পুনঃনির্দেশিত পতাকাটি অবশ্যই হবে,

 R=301

সুতরাং পুনর্লিখনের নিয়মটি এর মতো হবে,

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]

6

যদি আপনার অ্যাপাচি 2.4 থাকে 000-default.conf- সরিয়ে DocumentRootঅ্যাড করুন

Redirect permanent / https://[your-domain]/

5

সার্ভার সংস্করণ: অ্যাপাচি / ২.৪.২৯ (উবুন্টু)

ওয়েবে এবং আপাচের অফিসিয়াল ডকুমেন্টেশনে দীর্ঘ অনুসন্ধানের পরে, আমার পক্ষে কাজ করা একমাত্র সমাধানটি এসেছিল /usr/share/doc/apache2/README.Deban.gz থেকে

To enable SSL, type (as user root):

    a2ensite default-ssl
    a2enmod ssl

/Etc/apache2/sites- উপলভ্য / 1000-default.conf ফাইলটিতে যুক্ত করুন

"/" " Https://sub.domain.com/ " পুনর্নির্দেশ

<VirtualHost *:80>

    #ServerName www.example.com
    DocumentRoot /var/www/owncloud
    Redirect "/" "https://sub.domain.com/"

এটাই.


পিএস: আপনি যদি না বের করে ম্যানুয়ালটি পড়তে চান:

gunzip -cd /usr/share/doc/apache2/README.Debian.gz

3

এটি আমার পক্ষে কাজ করেছে:

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]

3

এই কোডটি আমার পক্ষে কাজ করে।

# ----------port 80----------
RewriteEngine on
# redirect http non-www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

# redirect http www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

# ----------port 443----------
RewriteEngine on
# redirect https non-www to https www
RewriteCond %{SERVER_NAME} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]


2

দয়া করে এটি অ্যাপাচে ভার্চুয়ালহোস্টিং কনফিগারেশনে ব্যবহার করে দেখুন এবং তারপরে অ্যাপাচি পরিষেবাটি পুনরায় লোড করুন

RewriteEngine On

RewriteCond %{HTTPS} off


RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

-1

httpআমার সার্ভারের ডিফল্ট অ্যাপাচি হোম পৃষ্ঠা থেকে সমস্ত ট্র্যাফিককে যে কোনও একটিতে পরিবেশন করা হয়েছে এমনটি রূপান্তর করার মতো সহজ কিছু জন্য আমার এটি দরকার ছিলhttps

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

<VirtualHost *:80>
  <Location "/">
     Redirect permanent "https://%{HTTP_HOST}%{REQUEST_URI}"
  </Location>
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot "/var/www/html"
  SSLEngine on
  ...
</VirtualHost>

আমি এটি পছন্দ করি কারণ এটি আমাকে অ্যাপাচি ভেরিয়েবলগুলি ব্যবহার করার অনুমতি দিয়েছে এবং সেই সাথে কোনও আসল ডোমেন নাম ছাড়াই এটির সত্যিকারের হোস্টের নামটি নির্দিষ্ট করতে হয়নি কারণ এটি কেবলমাত্র একটি আইপি ঠিকানা।

তথ্যসূত্র: https://stackoverflow.com/a/40291044/2089675

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