2013-07-17 8 views
9

Mam jeden problem: Chcę skonfigurować PHP i htaccess do tworzenia dynamicznych subdomen. I nie mogę zrozumieć, jak. Obecnie mój adres URL wygląda następująco:Jak utworzyć dynamiczną subdomenę za pomocą PHP i htaccess?

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

muszę to wyglądać tak:

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

wiem, można to zrobić, ale nie wiem, rozwiązanie jak to zrobić. Jest bardzo ważne dla mnie z funkcją $ _GET [] do odczytywania parametrów w adresie URL.

Problem polega na tym, że użytkownicy mojej witryny tworzą witrynę internetową i automatycznie otrzymują bezpłatną domenę (subdomenę). To powinno być automatyczne.

Dzięki!

Odpowiedz

14

Nie można zrobić dynamiczne subdomeny z .htaccess

Musisz skonfigurować apache wirtualnego hosta do przyjmowania wniosków o wielu domenach

Zobacz Apache documentation - Using Name Based Virtual Hosts

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

Dodawanie poddomena wieloznaczna *.example.com, twoja aplikacja PHP otrzyma wszystkie żądania dla dowolnej domeny poniżej example.com Tj garbage.example.com, busted.example.com, llama.example.com itp

Creating Wildcard Sub Domain Using Apache VirtualHost

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

Apache default virtual host for multiple domains

W tym momencie aplikacja będzie musiała ustalić zasadność subdomeny i wyświetlić odpowiedni dla błędu nieznane subs.

Stamtąd przeanalizuj domenę pod kątem mike.

+2

co tylko używając aliasów serwera dla każdej subdomeny? – PassKit

+0

Tak, ale to nadal jest konfiguracja vhost, a nie '.htaccess' – user20232359723568423357842364

+0

** Problem polega na tym, że użytkownicy w mojej witrynie tworzą swoją stronę internetową i automatycznie pobierają wolną poddomenie. Powinno to być automatyczne. ** –

2

KURSU można interpretować dynamiczne subdomeny za pomocą htaccess. Poniższa reguła rozwiąże problem.

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] 

więc ktoś odwiedza

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

będzie zobaczyć zawartość

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

Powiedz mi coś, czy muszę skonfigurować apache? –

+0

Nie, nie potrzebujesz żadnej konfiguracji apache. – tormuto