2010-10-02 5 views
6

Tôi không phải là một lập trình viên có kinh nghiệm và đang sử dụng CodeIgniter lần thứ hai.Codeigniter, tên miền đến một khu vực nhất định của trang web

Giả sử tôi có www.domain1.com. Vì vậy, tôi sẽ có, nói 3 bộ điều khiển/area1,/area2,/area3. Người dùng có thể truy cập chúng dưới dạng www.domain1.com/area1, v.v. nếu tôi đặt URL cơ sở là www.domain1.com. Nhưng vấn đề của tôi là, khách hàng muốn một khu vực nhất định của web, nói khu vực 2, làm việc như một microsite, trong miền riêng của mình, vì vậy anh ta muốn truy cập area2 với www.domain2.com.

Tôi không biết cách làm việc này với CodeIgniter. Giả sử anh ta đăng ký www.domain2.com và đặt nó trỏ đến cùng một DNS, máy chủ, vv Làm thế nào tôi có thể nhận được CodeIgnitor để thực thi vùng điều khiển2 khi URL www.domain2.com được truy cập?

Có thể thay đổi $config['base-url']? Định tuyến? .htaccess? Xin vui lòng, nếu bạn đã giải quyết điều này, các ví dụ về mã liên quan sẽ được đánh giá cao.

Chỉnh sửa: Tôi sẽ đưa ví dụ về trang web mà tôi muốn nhận.

Tôi có một cài đặt bình thường của CodeIgniter (host bên ngoài, tôi không thể truy cập httpd.conf) Đó là trên một máy, và thư mục gốc của trang web nên được truy cập bởi www.domain1.com

Tất cả các miền là bên ngoài đã đăng ký. Vì vậy, tôi có bộ điều khiển nhà, cho tôi xem trang chính. Và giả sử trang web có 3 khu vực/khu vực1,/khu vực2/khu vực3, với bộ điều khiển tương ứng của chúng, hiển thị các chế độ xem khu vực này.

Khách hàng của tôi muốn nhấn mạnh một trong những lĩnh vực, một trong đó điều khiển/area2 cho thấy, và ông muốn sử dụng một tên miền khác cho khu vực đó, www.domain2.com

Những gì tôi có thể làm như vậy mà khi người dùng duyệt đến www.domain2.com, CI chuyển hướng họ tới www.domain1.com/area2? Ví dụ: tôi có thể sửa đổi $config['base_url'] theo URL đã nhận hoặc không thể? Tôi có cần sửa đổi tệp .htaccess không?

+0

nếu tôi đúng bộ điều khiển cho vùng2 nằm trên cùng một miền với tất cả các bộ điều khiển khác? – ITroubs

+0

tất cả các bộ điều khiển trên cùng một thư mục trên cùng một máy chủ, chỉ một máy phisical, một máy chủ) –

+0

tôi chỉ muốn có thể xem/kết quả kiểm soát area2 accesing với một tên miền khác nhau mà tôi truy cập vào root codeigniter. –

Trả lời

7

Sau nhiều tìm kiếm, tôi tìm thấy một giải pháp mà dường như làm việc, rất dễ dàng để được trung thực:

Sửa routes.php:

if ($_SERVER['HTTP_HOST']=="www.domain2.com") { 
    $route['default_controller'] = "area2"; 
} 

Không cần mod viết lại.

+0

Tôi thích cái này, bạn cũng cần đảm bảo domain1.com không thể truy cập khu vực 2, ví dụ. add: if ($ _ SERVER ['HTTP_HOST'] == "www.domain1.com") {$ route ['area2'] = "diff_controller";} –

+0

Bạn nên chấp nhận câu trả lời cho câu hỏi của mình, bằng cách nhấp vào màu xanh lục dấu kiểm bên cạnh mỗi câu trả lời - điều này sẽ đánh dấu câu hỏi là đã được giải quyết và sẽ trao một phần thưởng nhỏ cho người hỏi và người trả lời vì sự cố của họ. Trong trường hợp này, vì bạn đã giải quyết được vấn đề của mình, bạn nên chấp nhận câu trả lời này. –

+0

đây là giải pháp tốt nhất và điều tôi đang sử dụng ngay bây giờ. – Ash

0

Đây là một liên kết hữu ích .... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html Không bao giờ thực sự tự làm điều này, nhưng đây dường như là cách để thực hiện nó mà không cần cài đặt hai ci. Chúc may mắn.

+0

Cheked các trang web ... –

+0

Đây không phải là trường hợp của tôi, vì vậy tôi không muốn có aplications diffreent như anh ta. Tôi chỉ muốn truy cập một phần của aplication duy nhất của tôi (nó là một phần của toàn bộ web anyway) với một tên miền khác nhau. Kiểm tra ví dụ về chỉnh sửa của tôi. –

-1

giải pháp đầu tiên mà tôi nghĩ là sử dụng Apache mod_rewrite, nhưng theo như tôi biết chỉ hoạt động cho chuyển hướng nội bộ (nghĩa là tài nguyên nằm trên cùng một máy chủ/miền).

Còn việc sử dụng iframe thì sao? Bạn có thể thiết lập trang chủ domain2.com với iframe toàn trang lấy nội dung từ domain1.com/area2.

+0

Tôi sẽ thử studing mod_rewrite posibilities sau đó. Ý tưởng iframe là một pont tốt quá, sẽ cố gắng đó quá. –

0

bạn chắc chắn cần phải đi theo con đường mod_rewrite

+0

Tôi sẽ cố gắng nghiên cứu khả năng của mod_rewrite sau đó –