User Rating: 0 / 5

วิธีการตรวจสอบและแก้ไขเว็บไซต์ที่ทำงานอยู่บน Cloud GCP, Ubuntu, Apache2 ให้ทำการ Redirect จาก Non-www ไป www หลังจากที่เปิดการใช้งาน https ด้วย Certbot จะช่วยให้ผู้เข้าชมเว็บสามารถดูเว็บไซท์จาก url เดิมที่ยังเป็น http ได้ 

How-to fix Apache2 Certbot https Non-www not redirect to www on Ubuntu Cloud GCP

วิธีการ:

  • เข้าไปที่หน้า VM instances ของ Cloud GCP เพื่อ Run Secure Shell

How-to fix Apache2 Certbot https Non-www not redirect to www on Ubuntu Cloud GCP

  • Run command: certbot certificates เพื่อตรวจดู list ของ certificate names ทั้งหมดที่มีอยู่
    • ใน แต่ละ Certificate name จะต้องมีทั้ง example.com และ www.example.com แสดงอยู่
    • ถ้าไม่มีให้ทำการ update certificate นั้นด้วย certbot command: certbot certonly --cert-name example.com -d example.org,www.example.org ดูการใช้งาน Certbot command เพิ่มเติมได้ที่ https://certbot.eff.org/docs/using.html#certbot-commands
    • หากต้องการลบ Certificate name ที่ซ้ำซ้อน สามารถทำได้โดย การใช้ certbot command: certbot delete --cert-name example.com แต่ให้ตรวจสอบให้แน่ใจว่าไม่มี File .conf ใดๆใน folder /etc/apache2/sites-available เรียกใช้ File certificate ที่ path /etc/letsencrypt/live หากมี เมื่อลบแล้วจะทำให้ Apache ไม่สามารถทำงานได้ หลังจากทำการ Restart

How-to fix Apache2 Certbot https Non-www not redirect to www on Ubuntu Cloud GCP

  • ตรวจสอบการกำหนดค่าของ .conf ของแต่ละ VirtualHost ว่าได้กำหนดให้มีการ redirect จาก Non-www to www ไว้อย่างถูกต้องเรียบร้อยแล้วหรือไม่

<VirtualHost *:80>
<Directory /var/www/erakii.org/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com

ServerAdmin webmaster@localhost
ServerName erakii.org
ServerAlias www.erakii.org

DocumentRoot /var/www/erakii.org/public_html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.erakii.org [OR]
RewriteCond %{SERVER_NAME} =erakii.org
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
<Directory /var/www/erakii.org/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com

ServerAdmin webmaster@localhost
ServerName erakii.org
ServerAlias www.erakii.org

DocumentRoot /var/www/erakii.org/public_html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
RewriteEngine on
# Some rewrite rules in this file were disabled on your HTTPS site,
# because they have the potential to create redirection loops.

#RewriteCond %{SERVER_NAME} =www.erakii.org [OR]
#RewriteCond %{SERVER_NAME} =erakii.org
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/erakii.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/erakii.org/privkey.pem
</VirtualHost>
</IfModule>

  • จากนั้นทำการ Restart Apache: service apache2 restart แล้วตรวจสอบผลการเปลี่ยนแปลงที่หน้า Browser

 Our services: Website Design and Development

Thank you for your support

เพิ่มคอมเมนต์ใหม่

รหัสป้องกันความปลอดภัย
รีเฟรช

  • Honda Accord 1990 วันจันทร์, 13 ตุลาคม 2551

    วันนี้มาดูวิธีการต่อสาย Ground เพิ่มในห้องเครื่อง เพื่อให้ระบบไฟในรถยนต์ดีขึ้นกัน ไอ้ที่ดีขึ้นนี้ก็คือลง Ground ดีขึ้นนั้นเอง เพราะศักดาต่ำที่สุดในรถของเรามันอยู่ที่ขั้วลบ...

  • Computer วันอังคาร, 29 กันยายน 2552

    มาดูโปรแกรมช่วยในการออกแบบติดตั้งระบบการนำสัญญาณโทรศัพท์มือถือ โดยจะเป็นไปในลักษณะที่เรียกว่า Simulation กันเลย ที่เดียว โดย Mobile Network Operators ทั่วโลกส่วนใหญ่ก็จะนิยมใช้โปรแกรมจำพวกนี้...

  • Toyota Prius 3rd Gen วันจันทร์, 03 มิถุนายน 2562

    Prius ใช้ระบบ Brake Booster Hydraulic Electric Pump แทนหม้อลมเบรคแบบดั้งเดิม โดยชุด Brake Booster Hydraulic Pump หลักจะประกอบด้วยตัวมอเตอร์ไฟฟ้า กับตุ้มเก็บแรงดัน (Accumulator)...