簡體   English   中英

301在Apache上重定向:與HTTP沖突=> HTTPS重寫規則

[英]301 Redirect on Apache: conflict with HTTP => HTTPS Rewrite rules

我對運行的Apache 2 Amazon EC2實例Ubuntu的18.04服務器,並安裝SSL證書,這是我專門使用托管虛擬主機的的.TLD變化policymakr.com域,共享同一個固定的IP。

我希望配置實現以下目標:

  1. 可在服務器上訪問的主域(policymakr.domains,具有index.html頁,並且可以通過SSL在服務器上訪問);
  2. 通過301重定向將所有其他tlds重定向到https://www.policymakr.com ,該網址由托管的WordPress主機單獨托管;
  3. 將所有http入站policymakr.domains流量重定向到https,並將所有policymakr.domains流量重定向到www.policymakr.domains。

(我這樣做的原因是因為我出於SEO的目的要通過301重新映射tld,而我的WordPress網站的主機無法實現此目的,因為該網站托管在共享服務器上。)

我開始設置頂級域名,他們重定向正確。 Tld(.net,.org,.info和.io)的.conf文件都相同,如下所示:

<VirtualHost *:80>
   ServerAdmin webmaster@policymakr.com
   ServerName www.policymakr.[tld]
   DocumentRoot /var/www/html/policymakr.[tld]/
   ErrorLog /var/www/logs/error.log
   Redirect 301 / https://www.policymakr.com/
</VirtualHost>

設置好tld虛擬主機后,“ 301重定向”全部開始正常運行。

由於需要安裝外部SSL證書(Amazon證書似乎無法附加到EC2實例)會稍微增加一些復雜性,因此我繼續為policymakr.domains設置虛擬主機,以使其持久。

我設置的policymakr.domains虛擬主機如下所示:

<VirtualHost *:80>
   ServerAdmin webmaster@policymakr.com
   ServerName www.policymakr.domains
   ServerAlias policymakr.domains
   DocumentRoot /var/www/html/policymakr.domains/
   ErrorLog /var/www/logs/error.log
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^policymakr\.domains
   RewriteRule ^(.*)$ http://www.policymakr.domains/$1 [R=permanent,L]
</VirtualHost>

<VirtualHost *:443>
   ServerName www.policymakr.domains
   ServerAlias policymakr.domains
   DocumentRoot /var/www/html/policymakr.domains/
   SSLEngine on
   SSLCertificateFile /etc/apache2/ssl/[crt file name]
   SSLCertificateKeyFile /etc/apache2/ssl/private/[private key]
   SSLCertificateChainFile /etc/apache2/ssl/[bundle file]
   RewriteEngine on
   RewriteCond %{HTTPS_HOST} ^policymakr\.domains
   RewriteRule ^(.*)$ https://www.policymakr.domains/$1 [R=permanent,L]
</VirtualHost>

此后,policymakr.domains的重定向功能完全按照我的要求運行(即,非www到www,http到https的非www),但是其他tld的301重定向已停止工作。 相反,它們現在都重定向到https://www.policymakr.domains

我基本上不知道我在這里出了什么問題。

整個配置實際上在幾個小時后就可以工作了,這可能是某種緩存問題。 我添加的唯一更改是每個.conf文件中的ServerAlias policymakr.[tld]條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM