2011-01-08 20 views
14

Làm cách nào để tôi cung cấp Ứng dụng Basecamp/SAAS như miền phụ cho khách hàng?Cách cung cấp tên miền phụ tùy chỉnh cho Ứng dụng SAAS

Ví dụ: URL trang web của tôi là http://www.example.com bất cứ khi nào người dùng đăng ký, tôi muốn cung cấp url cho họ như http://company.example.com, tệp này sẽ tải tệp/nội dung từ thư mục /app của trang web.

Và sau đó tôi muốn họ chọn tên miền riêng/sub-domain của họ thông qua CNAME, để họ có thể có URL như http://clients.mywebsite.com

Tôi muốn làm điều này trong PHP tinh khiết và .htaccess và dĩ nhiên tất cả mọi thứ xảy ra tự động.

Và tôi muốn giữ cấu trúc URL tương tự .., đó là http://company.example.com/login, http://company.example.com/accounts, http://company.example.com/files/style.css dù những tập tin nằm bên trong thư mục /app tôi muốn họ được truy cập như thế này.

Tôi có thể xử lý tất cả các chức năng PHP, tôi cần trợ giúp về mã .htaccess và cách thực hiện CNAME.

Trả lời

11

Hãy chắc chắn rằng DNS giải quyết tất cả các tên miền phụ bằng cách bao gồm sau đây trong khu vực miền của:

*.example.com. 14400 IN A HereBeIP 

Tiếp theo, cấu hình máy chủ web để nhận tất cả các yêu cầu gửi đến, cho Apache, bạn cần phải thêm sau để VirtualHost:

ServerAlias *.example.com 

Vậy đó. Điều duy nhất còn lại là logic trong mã, bạn cần kiểm tra tên máy chủ để xem liệu một yêu cầu đã được thực hiện tới example.com hay foo.example.com.

Cập nhật để biết thêm chi tiết.

Vì vậy, giả sử tập tin của bạn trong /path/to/files/app, bạn cần phải cấu hình máy chủ ảo như thế này:

<VirtualHost> 
    SeverName example.com 
    ServerAlias *.example.com 
    DocumentRoot /path/to/files/app 
    # plus what else is needed 
</VirtualHost> 

Bằng cách này tất cả các yêu cầu sẽ giải quyết để /app thư mục. Để kiểm tra, hãy áp dụng cấu hình DNS bên trên hoặc chỉ cần thêm tên miền bạn muốn thử nghiệm vào tệp hosts, /etc/hosts trên Linux hoặc c:\Windows\System32\drivers\etc\hosts trên Windows.

+0

Làm cách nào để thực hiện điều này với .HTACCESS, ý tôi là bất cứ khi nào yêu cầu được gửi (http://company.example.com) php sẽ hiển thị trang cho phù hợp, nhưng tôi muốn giữ cấu trúc URL giống nhau. –

+0

trong ngắn hạn, bạn không thể chỉ với .HTACCESS –

+0

Như Dagon đã nói, bạn không thể làm điều đó với .htaccess. Đảm bảo áp dụng các cài đặt ở trên, những gì còn lại chỉ là cấu hình Apache để trỏ đến cùng một cấu trúc. –

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