2011-12-05 11 views
9

Tôi đã tự hỏi nếu kịch bản sau đây có thể sử dụng các quy tắc htaccess hay không. Tôi muốn một tên miền phụ được chuyển hướng đến một url khác. Tôi đã liên hệ với quản trị viên máy chủ để thêm tên miền phụ "thử nghiệm" vào miền "example.com". Tên miền chính không có tên miền phụ nào khác.chuyển hướng miền phụ trong htaccess

Quy tắc nào tôi phải đặt trong htaccess để thực hiện: http://test.example.com để được chuyển hướng đến http://www.something-else.com.

LƯU Ý: www.something-else.com là một url phức tạp (200 ký tự chiều dài)

EDIT file .htaccess đầy đủ của tôi bây giờ trông giống như:

Options +FollowSymLinks 
RewriteEngine on 
RewriteOptions inherit 
RewriteBase/

RewriteCond %{HTTP_HOST} ^test.example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/redir.php [L] 

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

Các tập tin .htaccess nằm vào thư mục gốc example.com. Tôi không có quyền truy cập vật lý để kiểm tra thư mục con, mặc dù tôi biết nó tồn tại - ping đến địa chỉ đó cho tôi biết địa chỉ IP của example.com

Nhập test.example.com vào thanh địa chỉ của trình duyệt không có hiệu lực. Màn hình trắng, không chuyển hướng, không có gì. Nếu một số trang tồn tại ở đó, tôi không biết.

+0

url phức tạp là gì? –

+0

@Book Of Zeus: https://www.somdomain.com/a/folder1/somepage?var=xxx&var2=xxx&var3=xxx&var4=http://another-domain.com/folder1/xxxxx/&var5=xxx&var6=xxxx – andrew

+0

http://stackoverflow.com/a/1460652/567986 nhưng bạn nên xóa ', P' ở cuối và xóa% {REQUEST_URI}. – Gerben

Trả lời

17

Đối với các url tĩnh:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^test.example.com$ [NC] 
RewriteRule ^(.*)$ https://www.somdomain.com/a/folder1/somepage?var=xxx&var2=xxx&var3=xxx&var4=http://another-domain.com/folder1/xxxxx/?&var5=xxx&var6=xxxx [R=301,NC,L] 

Đối với các url động (nếu miền gốc có thư mục mà cần phải được chuyển sang tên miền khác):

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^test.example.com$ [NC] 
RewriteRule ^(.*)$ https://www.somdomain.com%{REQUEST_URI} [R=301,NC,L,QSA] 

Từ chỉnh sửa của bạn:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^test.example.com$ [NC] 
RewriteRule ^(.*)$ redir.php [R=301,NC,L] 
+0

no it doenst work. Thoạt nhìn tôi nghĩ rằng url chuyển hướng đã phá vỡ htaccess. Tôi đặt nó trong một tập tin php và thay đổi htaccess của tôi để chuyển hướng các tên miền phụ vào tập tin php. Vẫn không làm việc. RewriteEngine On RewriteCond% {HTTP_HOST}^test.example.com $ [NC] RewriteRule^(. *) $ Http://www.example.com/redir.php [R = 301, NC, L] – andrew

+0

i đã cập nhật câu trả lời của tôi –

+0

Vẫn không có gì. Nó sẽ làm việc, tôi biết, nhưng nó không. Tôi đã chỉnh sửa bài đăng gốc của mình để hiển thị toàn bộ htaccess của mình. Tôi bị bối rối.Nó có vẻ đơn giản như vậy lúc đầu tiên – andrew