2013-07-17 37 views
9

Tôi có một vấn đề: Tôi muốn thiết lập PHP và htaccess để tạo các tên miền phụ động. Và tôi không thể tìm ra cách. Hiện URL của tôi trông như thế này:Làm thế nào để tạo tên miền phụ động bằng cách sử dụng PHP và htaccess?

www.exemple.com/index.php?subdomain=mike&component=content&id=26&title=people-love-apps 

tôi cần nó trông như thế này:

www.mike.exemple.com/content/26/people-love-apps.html 

Tôi biết nó có thể được thực hiện nhưng tôi không biết một giải pháp làm thế nào để làm điều đó. Rất quan trọng đối với tôi với hàm $ _GET [] để đọc tham số trong URL.

Vấn đề là người dùng trên trang web của tôi thực hiện trang web của họ và tự động nhận miền miễn phí (tên miền phụ). Điều này sẽ được tự động.

Cảm ơn!

Trả lời

14

Bạn không thể làm subdomain năng động với .htaccess

Bạn sẽ cần phải cấu hình máy chủ ảo apache để chấp nhận yêu cầu cho nhiều tên miền

Xem Apache documentation - Using Name Based Virtual Hosts

<VirtualHost *:80> 
    ServerName www.example.com 
    ServerAlias example.com *.example.com 
    DocumentRoot /www/domain 
</VirtualHost> 

Thêm tên miền phụ ký tự đại diện *.example.com, ứng dụng PHP của bạn sẽ nhận được tất cả các yêu cầu cho bất kỳ miền nào bên dưới example.com , Tức là garbage.example.com, busted.example.com, llama.example.com vv

Creating Wildcard Sub Domain Using Apache VirtualHost

Multiple Domains to One Virtual Host | Wildcard Host (shared hosting)?

Apache default virtual host for multiple domains

Tại thời điểm này, ứng dụng của bạn sẽ phải xác định tính hợp lệ của các tên miền phụ và hiển thị lỗi thích hợp cho người đăng ký không xác định.

Từ đó, phân tích miền cho mike.

+2

gì về chỉ sử dụng bí danh máy chủ cho mỗi tên miền phụ? – PassKit

+0

Có, nhưng đó vẫn là cấu hình vhost, không phải '.htaccess' – user20232359723568423357842364

+0

** Vấn đề là người dùng trên trang web của tôi tạo trang web của họ và tự động nhận tên miền phụ miễn phí. Điều này sẽ tự động. ** –

2

OF COURSE bạn có thể diễn giải tên miền phụ động bằng htaccess. Quy tắc sau sẽ giải quyết vấn đề.

RewriteCond %{HTTP_HOST} www\.([^.]+)\.example\.com [NC] 
RewriteRule ^/content/([0-9]+)/([a-zA-Z0-9_\-])\.html /index.php?subdomain=%1&component=content&id=$1&title=$2 [L] 

để bất cứ ai cách truy cập vào

www.mike.exemple.com/content/26/people-love-apps.html 

sẽ thấy nội dung của

www.exemple.com/index.php?subdomain=mike&component=content&id=26&title=people-love-apps 
+0

Hãy cho tôi biết điều gì đó, tôi có cần cấu hình apache cho điều này không? –

+0

Không, bạn không cần bất kỳ cấu hình apache nào. – tormuto

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