簡體   English   中英

.htaccess用於通過子域更改域-Apache + plesk

[英].htaccess for domain change with subdomains - apache + plesk

我們使用的是基於plesk的系統,並且最近才更改了域名。 我想將所有進入舊域的請求重定向到新域。 有許多類似的問題,但我的卻有些不同。 我想確保所有子域都路由到新域上的同一subdoamin。 我在docroot中設置了通用的htaccess,但由於某種原因,它也適用於所有子域。

RewriteCond %{HTTP_HOST} !newdomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

如何使它更通用,以使子域也得到適當路由? 對於獎勵積分,我該如何將https請求路由到https,將http請求路由到http。

我想補充一點,該規則將第一個網址轉換為第二個網址,這是不理想的:

http://SUBDOMAIN.olddomain.com/somepath/somefile.php
http://newdomain.com/subdomains/SUBDOMAIN/httpdocs/somepath/somefile.php

正確的轉換應創建以下網址:

http://SUBDOMAIN.newdomain.com/somepath/somefile.php

最后,這應該與通配符子域一起使用。

提前致謝!

嘗試:

# ignore "www."
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.olddomain.com$ [NC]
RewriteRule ^(.*)$ http://%1.newdomain.com/$1 [L,R=301]

您希望已有規則之前執行此操作。

而且,由於您已經編輯了問題,因此您希望進行其他內部重寫,以在新站點上處理一般的子域,這與重定向無關。 這是301重定向范圍之外的全新功能。 您將需要特殊的規則來處理子域的內部路由:

RewriteCond %{REQUEST_URI} !^/subdomains/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.newdomain.com$ [NC]
RewriteRule ^(.*)$ /subdomains/%1/httpdocs/$1 [L]

暫無
暫無

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

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