2016-03-20 24 views
0

Bu parçayı duydum (.htaccess redirect all pages to new domain) çok bilgilendirici. Ancak, isteğim bu orijinal istekten biraz farklı.htaccess Mod_Rewrite Ana Alan Adı - Alt Alan Adı

Eski konudan yeni bir etki alanına yönlendirmeyle ilgili ileti dizisinin üst kısmında, ancak, ana etki alanını yalnızca bir alt etki alanına iletmeyi istedim.

İşte bir soru - Tüm isteği ana alanımdan alt etki alanına nasıl otomatik olarak iletirim. Örneğin -

Açılış URL'si: http://example.com Yönlendirme URL: http://sub.example.com

Açılış URL'si: http://example.com?var=foo Yönlendirme URL: http://sub.example.com?var=foo

birisi benim yönlendirme URL üzerinde toprakları, ben onları tekrar yönlendirilmek istemiyorum 301 ile basit bir ifadeyle, açılış URL'si aynıysa, http://sub.example.com'a inen tüm istekleri her zaman yönlendiren bir kural kullanmak istemiyorum.

Yukarıdaki bağlantıdan gelen tavsiyelere uyuyorsam, ana alandan bir alt alana yönlendirmek istediğim için benim durumumda olacağına inanıyorum.

Şimdiye kadar sahip olduğum şeyler ve kısmi iş yapıyor. Sadece bir alanımı başka bir alt alana yönlendiriyor. Ancak, herhangi bir URL parametresi olduğunda çalışmaz, sadece aynı eski URL’yi korur. Basit bir deyişle

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^$ http://sub.example.com/? [R=301,NE,NC,L] 

- orada http://example.com?var=foo ve onu olduğu gibi kaldığında benim kod tepki vermez.

Herhangi bir rehberlik harika olurdu.

cevap

2

Bir koşulu kaldırmanız ve normal ifadenizi değiştirmeniz gerekir.

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule ^(.*)/?$ http://sub.example.com/$1 [R=301,NE,NC,L] 

Tarayıcı önbelleğini temizleyin ve ardından bir deneyin. Nasıl çalıştığını bana bildirin.

+1

Harika cevap! Sihirli bir şekilde çalışır. Çok teşekkür ederim! – pinaldave

+0

Yardım ettiğim için çok memnun oldum. –