2017-08-30 153 views
0

沒有人有任何想法,爲什麼我從www到非www的重定向可能無法正常工作?.htaccess在WordPress的https和www非WWW

基本信息:靈雲主機上去,Worpress 域名重定向工作:bitcoinmesse.com 子域重定向不工作:shop.bitcoinmesse.com

當前的.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 
</IfModule> 


# 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 

嘗試所有這些都是通過網絡進行的。他們中的大多數導致此:

內部服務器錯誤

服務器遇到一個內部錯誤或配置錯誤,無法完成您的請求。

別人只是說我有一個無限循環:

再次他人導致奇怪的錯誤,就像請求子likte /店/,要麼得到一個404或https://shop/無法達成。

但他們都沒有將www重定向到非www。使用www輸入地址總是會導致:在Firefox中找不到服務器或在Chrome中無法訪問網站。

任何人有任何想法?

編輯:同時它似乎有一個效果,www.shop.bitcoinmesse.com可及,並轉發到https://shop.bitcoinmesse.com

不幸的是,像www.shop.bitcoinmesse.com/shop/這樣的子頁面無法訪問。

回答

0

嘗試

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 
</IfModule> 

基本上現在背參考$1不指向任何東西。我將(.*)添加到RewriteRule,因此$1實際上是對正則表達式中捕獲組的引用。您也可以嘗試將$1更改爲$0,因爲$0是完全匹配的網址,所以它會執行相同的操作。

我還更新了RewriteCond,以確保主機標頭有一些東西在www.之後。這是一個小改變,因爲服務器不應該聽任何主機頭。

+0

試過了你的答案。還是一樣的結果:網站無法訪問,www.shop.bitcoinmesse.com。 我真的有這種感覺,而不是在htaccess中的東西,因爲我已經嘗試了很多解決方案,它們中沒有一個似乎對www部分有任何影響。 難道是這樣的,www只是沒有以任何方式指向我的文件夾與htacces?所以也許Strato只是將shop.bitcoinmesse.com鏈接到我的子文件夾,而不是www.shop.bitcoinmesse.com。 – Timotheus

+0

今天到達與www工作的網站。我仍然保留你的解決方案。我在Strato用www.shop.bitcoinmesse.com刪除了子域名,它似乎仍然有效。 不幸的是www.shop.bitcoinmesse.com/shop/不可用。 – Timotheus

+0

如果您將該子域刪除到www。那麼'www.shop.bitcoinmesse.com/shop'將不會加載,因爲子域不存在。 – Charles