PHP her kullanıcı için otomatik subdomain oluşturmak için izin nasıl?

9 Cevap php

Nasıl gibi subdomain oluştururum http://user.mywebsite.com? I bir şekilde htaccess erişmek zorunda mıyım? Saf php kodu ile bunu yaratmak için basitçe mümkün aslında ya da ben bazı dış komut-sunucu tarafı dil kullanmak gerekir?

Cevap olanlar: Onlar DNS erişim çeşit sağlamak eğer Eh, o zaman, benim barındırma sormak gerekir?

9 Cevap

Eğer bir özel oluşturmak için arıyoruz A record.

Ben böyle bir şey yapalım istiyorum A kayıtları belirtirken joker karakterleri kullanabilirsiniz eminim:

*.mywebsite.com       IN  A       127.0.0.1

127.0.0.1 would be the IP address of your webserver. The method of actually adding the record will depend on your host.


Bu bir seçenek eğer gibi bunu yapıyor http://mywebsite.com/user kurmak çok daha kolay olurdu.

. Sonra sadece bu gibi görünen bir htaccess dosyası ekleyebilirsiniz:

Options +FollowSymLinks

RewriteEngine On
RewriteRule ^([aA-zZ])$  dostuff.php?username=$1

In the above, usernames are limited to the characters a-z


Subdomain kapma için yeniden yazma kuralı şöyle olacaktır:

RewriteCond %{HTTP_HOST} ^(^.*)\.mywebsite.com
RewriteRule (.*)  dostuff.php?username=%1

Ben bunu Mark biraz farklı yapmak. Ben tüm etki alanı geçmek ve php subdomain kapmak.

RewriteCond {REQUEST_URI} !\.(png|gif|jpg)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?uri=$1&hostName=%{HTTP_HOST}

Bu görüntüleri sayar ve benim index.php dosyasına her şeyi eşler. Ben gitmek Yani eğer

http://fred.mywebsite.com/album/Dance/now

Ben dönene

http://fred.mywebsite.com/index.php?uri=album/Dance/now&hostName=fred.mywebsite.com

Sonra benim index.php kod ben sadece hostName kapalı adımı patlayabilir. Bu bana güzel hoş SEO URL'ler verir.

Eğer peşinde özelliği denir Wildcard Subdomains. Bu, her bir alt alan için kurulum DNS var, ve bunun yerine yeniden yönlendirme için apache yeniden yazar kullanmayın verir. Sen güzel bir öğretici here bulabilirsiniz, ama öğreticiler binlerce dışarı orada. İşte bu öğretici gerekli kodu:

<VirtualHost 111.22.33.55>
    DocumentRoot /www/subdomain
    ServerName www.domain.tld
    ServerAlias *.domain.tld
</VirtualHost>

Bunun yerine yerel bir. Htaccess ve o sunucunun httpd.conf dosyasında ayarlanması gerekir VirtualHosts kullanımını gerekli ancak olarak.

Eğer Cpanel kullanıyorsanız, this çok iyi bir öğretici olduğunu.

Etrafında yaygara yapmayın. Htaccess dosyalarını kullanabilirsiniz zaman Apache mass virtual hosting.

Belgeleri:

#include part of the server name in the filenames VirtualDocumentRoot /www/hosts/%2/docs

Bir bakıma bu sorunuzun ters değil: her 'alt alan' bir kullanıcı. Kullanıcı yoksa, bir 404 olsun.

Tek dezavantajı çevre değişkeni DOCUMENT_ROOT doğru used alt dizininde, ama de htconfig varsayılan document_root ayarlanmış olmasıdır.

Yukarıda açıklandığı gibi biz kurulum joker DNS. Yani bir rekor olan *. Yourname.com

Sonra alt etki alanlarının hepsi aslında aynı yere gidiyoruz, ama php farklı bir hesap olarak her subdomain davranır.

We use the following code: $url=$_SERVER["REQUEST_URL"]; $account=str_replace(".yourdomain.com","",$url);

Bu kod sadece $ hesabı büyüklüğünün alt etki alanı olarak aynı ayarlar. Daha sonra kendi dosyaları ve kendi hesabına dayalı diğer bilgilerini alabilir.

Bu muhtemelen yukarıda sıraladığım yolları olarak verimli değildir, ancak BIND'e ve / veya sınırlı. Htaccess erişiminiz yoksa, bu yöntem (sürece host kurulumu için joker olacak gibi) çalışmalıdır.

Biz aslında çok şirket e-ticaret uygulaması için müşteri veritabanına bağlanmak için bu yöntemi kullanabilirsiniz, ama aynı zamanda sizin için çalışabilir.

Sen [potansiyel] URL yeniden yazmak yapabilirdi, ama evet: Bir kullanıcı eklendiğinde kendi subdomain alır böylece DNS ayarları kontrol etmek gerekiyor.

Yeni subdomain işlemek için WWW sunucu yapılandırma değişikliklerin yanı sıra, kod DNS kayıtları değişiklikler yapmak gerekir. Kendi BIND'i (veya benzeri) çalıştıran sürece Yani, sizin ad sunucusu sağlayıcının yapılandırma erişmek için nasıl anlamaya gerekir. Bu API çeşit sunmuyoruz, bu zor alabilirsiniz.

Güncelle: onlar da ad sunucusu hizmetini (genellikle olduğu gibi) sağlanması eğer evet, ben kayıt ile kontrol. Ben daha önce bu seçeneği araştırdı hiç ama tüketici kayıt çoğu yok sanıyorum. Ben GoDaddy API'ler ve GoDaddy DNS API'ler için google'da bir şey ama açmak mümkün değildi, bu yüzden en iyi seçenek sağlayıcı ile çevrimiçi yardımı kontrol etmek olacaktır sanırım, ve bu soruya cevap vermezse, bir yakalayabilmeleri destek personeli.

Eğer CPANEL kullanıyorsanız, o zaman denilen, senaryoyu orada var

cpanel Subdomains Creator

Bu bir php yumuşak.