2012-08-16 25 views
5

Hi Tôi có một tên miền chính như sauRedirect subdomain vào miền chính ngoại trừ một url

miền chính: http://www.sample.com/

Sub miền: http://dev.sample.com/

Bây giờ nếu có một truy cập http://dev.sample.com/ Nó cần phải chuyển hướng đến http://www.sample.com/ Vì vậy, tôi đã thêm mã sau vào tên miền phụ của mình Nó hoạt động rất tốt

RewriteCond %{HTTP_HOST} !www.sample.com.com$ [NC] 

RewriteRule ^(.*)$ http://www.sample.com.com/$1 [L,R=301] 

Nhưng từ tên miền phụ nếu có truy cập vào url sau http://dev.sample.com/data sau đó nó không nên chuyển hướng đến tên miền chính. Nó nên ở trên trang tên miền phụ đó. Bất kỳ ai có ý tưởng?

Trả lời

2

Hãy thử những quy tắc:

RewriteCond %{HTTP_HOST} ^dev\.sample\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/?data 
RewriteRule ^(.*)$ http://www.sample.com/$1 [L,QSA,R=301] 
+0

cảm ơn bạn @Yazmat .. công trình của nó tốt :) – AnNaMaLaI

+0

Bạn đang! chào mừng :) vui vì nó đang làm việc ^^ – Oussama

1

Hãy thử điều này:

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

Tuy nhiên, điều này sẽ ngăn chặn tất cả các URL với/dữ liệu khi bắt đầu URI. Vì vậy, nếu bạn có http://blog.sample.com/data nó cũng sẽ cho phép nó giải quyết mà không cần viết lại. Nếu đây là một vấn đề bạn có thể trở nên phức tạp hơn ... sau khi quy tắc này thêm này để bắt tất cả các tên miền phụ không dev:

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

Bây giờ nếu các thiết lập điều kiện đầu tiên là không đáp ứng được các quy tắc đầu tiên sẽ không chạy, vì vậy hãy kiểm tra để đảm bảo rằng bạn chỉ đang phân phối dev và www up with/data.

+0

tôi đã cố gắng này, nhưng nó không làm việc :( – AnNaMaLaI

+0

Nice one Làm việc như một say mê :) –

Các vấn đề liên quan