Mod-Rewrite

apache2將www附加到https url

  • September 8, 2017

我在 AWS 中有一個使用 bitnami 的 apache2 網路伺服器。在我的bitnami.conf文件中,我需要將所有 URL 重寫為

https://www.example.com

我能夠正確重定向以下內容

mydomain.com
http://example.com
www.example.com

但是當 url 是https://example.com它不會重定向到https://www.example.com.

我的配置是

<VirtualHost _default_:80>
     DocumentRoot "/opt/bitnami/apache2/htdocs"
     RewriteEngine On
     RewriteCond %{HTTPS} !=on
     RewriteRule ^ - [E=protossl:s]
     RewriteCond %{HTTP_HOST} ^([a-z.]+)?example.com$ [NC]
     RewriteCond %{HTTP_HOST} !^www. [NC]
     RewriteRule .? http://www.%example.com%{REQUEST_URI} [R=301,L]
     RewriteRule /smecweb/(.*) /$1 [R=301]
     RewriteRule ^(/(.*))?$ https://www.%{SERVER_NAME}/$1 [R,L]

我試圖在 中做類似的事情 <VirtualHost _default_:443>,但將其還原。

有人可以指出我在這裡做錯了什麼嗎?

您正在使用的RewriteCond andRewriteRule聽起來不正確。定義的伺服器名稱是什麼?

你可以試試這個配置:

Servername www.example.com
Serveralias  example.com
RewriteEngine on
RewriteRule (.*) https://%{HTTP_HOST}$1 [L,R=301,QSA,NE]

引用自:https://serverfault.com/questions/872512