2017-06-14 129 views
-1

我知道這裏有幾個主題,但我嘗試過的所有配置通常都使我的網站無法訪問。我的問題是,我們最近獲得了SSL證書,但僅適用於該網站的非「www」版本,但如果用戶使用「www」編寫URL,則會收到不安全的站點消息。這是當前htaccess文件:htaccess強制https「www」重定向到非「www」

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

例如這樣的配置不會做任何事情之一:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
</IfModule> 
# END WordPress 
+0

不要忘記,DNS重定向及經常被瀏覽器/系統緩存,因此一些重定向不會採取實際數小時影響,儘管清除瀏覽器緩存。我會避免頻繁更改並嘗試不同的重定向。嘗試一下,然後離開它一天,然後測試它。如果它不起作用,請嘗試下一個並離開一天。此外,請關閉所有網絡級別和站點級緩存,直到解決此問題。請記住使用天鵝絨網址或類似的插件來重寫所有網站鏈接到非'WWW',並在做任何事情之前在WP Admin中更改網站網址。 –

+0

我會在一段時間後看看它是否有效,謝謝。 – Sergi

+0

你可能會看一整天左右。 –

回答

0

如果你是在Apache(我認爲),土特產品可以嘗試:

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

當然一定不要有「www」。在您的網站設置中,因爲這可能會破壞整個網站。

你也可以重定向到WWW非www在.htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC] 
RewriteRule ^(.*)$ https://yourdomain.com/$1 [L,R=301] 

此外,這可以幫助避免混合內容的警告。始終把它在.htaccess

Header always set Content-Security-Policy: upgrade-insecure-requests 

乾杯

+0

我試過各種重定向無濟於事。如果我在Firefox上試用它,並且用戶使用「www」寫入URL,則它們根本不會被重定向,並且獲取該站點不安全的消息。那簡單的一個將不起作用。 – Sergi

+0

在這種情況下,我會聯繫主機提供商,並詢問是否啓用「mod重寫」。如果服務器沒有遵循.htaccess規則是相當奇怪的 – FrancescoCarlucci

+0

我也看到這個firefox-only問題在wordpress安裝。不知何故,Firefox中的重寫不會遺漏www。並去https://www.dns.com而不是https://dns.com - 有一個與Firefox的已知錯誤? – macbert

相關問題