Create Dynamic Subdomains using PHP and Htaccess
Wall Script
Wall Script
Monday, March 14, 2016

Create Dynamic Subdomains using PHP and Htaccess

Dynamic subdomains like Google Blogger and Tumblr.com, I know most of the people are looking for better solution. Today I want to explain how to achieve this using .htaccess with PHP. I especially love to write .htaccess file, using this you can easily host multiple domains in single server. This dynamic subdomain system is the base for cloud services, soon I will come with new tutorial. I hope this post will solve your problem, please take a look this live demo.

Create Dynamic Subdomains using PHP and Htaccess


Download Script     Live Demo

Step 1
Go to your domain DNS(Domain Name Settings), click add zone record.

Create Dynamic Subdomains A ZONE settings

Step 2
You need to create a custom A record to serve all your subdomains. Select A record, HOST * POINTS TO: Your ID Address(Eg: 106.21.252.71)

Create Dynamic Subdomains A ZONE settings add

Step 3
Repeat the same for HOST @, here is the listed A records.

Create Dynamic Subdomains A record settings


Step 4
Now add CNAME record, HOST www POINTS TO @ this refers to your IP address.

Create Dynamic Subdomains CNAME ZONE settings add

Step 5
CNAME list should be in following way.

Create Dynamic Subdomains CNAME record settings

Step 6
Save all of your domain DNS settings.

Working with Hosting Server
We can achieve dynamic subdomains system with .htaccess URL redirection configuration file, here I have a project directory called yourwebsite_folder

Create Dynamic Subdomains .htaccess settings

(1) Root .htaccess
This file is redirection http://www.yourwebsite.com to http://yourwebsite.com for home page use. All of the subdomain redirection to yourwebsite_folder
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.yourwebsite.com
RewriteRule (.*) http://yourwebsite.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^yourwebsite\.com $
RewriteCond %{REQUEST_URI} !^/yourwebsite_folder/
RewriteRule (.*) /yourwebsite_folder/$1

RewriteCond %{HTTP_HOST} ^(^.*)\.yourwebsite.com
RewriteCond %{REQUEST_URI} !^/yourwebsite_folder/
RewriteRule (.*) /yourwebsite_folder/$1

(2) Inside Folder .htaccess
This file is rewriting the subdomain urls.

http://yourwebsite.com/index.php?siteName=9lessons
to
http://9lessons.yourwebsite.com
Options +FollowSymLinks
RewriteEngine On

RewriteBase /

RewriteRule ^([aA-zZ])$ index.php?siteName=$1
RewriteCond %{HTTP_HOST} ^(^.*)\.yourwebsite.com
RewriteRule (.*) index.php?siteName=%1

More .htaccess tips: Htaccess File Tutorial and Tips.

index.php
This file contains simple PHP code, using regular expressions validating the subdomain value.
<?php
$siteName='';
if($_GET['siteName'] )
{
$sitePostName=$_GET['siteName'];
$siteNameCheck = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $sitePostName);
   if($siteNameCheck)
   {
     //Do something. Eg: Connect database and validate the siteName.
   }
   else
  {
    header("Location: http://yourwebsite.com/404.php");
   }
}
?>
//HTML Code
<!DOCTYPE html>
<html>
<head>
<title>Project Title</title>
</head>
<body>
<?php if($siteNameCheck) { ?>
//Home Page
<?php } else { ?>
//Redirect to Subdomain Page.
<?php } ?>
</body>
</html>

No Subdomain Folder
If you are using root directory(htdocs/public_html) as a project directory, use this following .htaccess file.
Options +FollowSymLinks
RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ^www.yourwebsite.com
RewriteRule (.*) http://yourwebsite.com/$1 [R=301,L]

RewriteRule ^([aA-zZ])$ index.php?siteName=$1
RewriteCond %{HTTP_HOST} ^(^.*)\.yourwebsite.com
RewriteRule (.*) index.php?siteName=%1
web notification

57 comments:

  1. This is just amazing, is it any way we can create same in digital ocean

    ReplyDelete
  2. Hi dude,
    I want to this like redirection file.
    for eg: wdcctest.com/index.php/WEWReafdfee-adfsd-sdfsdf

    this like redirect in same index page. can you send that htaccess file code

    ReplyDelete
  3. Hello,

    Please, did you mean we can use either of the methods above? Or, we still need to configure CNAME, A RECORD before .htaccess can work?

    Thanks

    ReplyDelete
    Replies
    1. You have to configure CNAME and A Record

      Delete
    2. Okay,
      What happens to original (static) subdomain?
      Thanks.

      Delete
  4. unable to create for "Www".
    I know the reason, but you can make it more pretty by adding a validation or popup message.
    Thanks
    Akshay Makadiya

    ReplyDelete
  5. Hello

    i have create the CNAME and A(Host) records but getting the : Internal Server Error

    Can you help..

    ReplyDelete
  6. Great tip thanks This is just amazing.

    ReplyDelete
  7. Nice article. Can you a post on dynamic subdomains with php and nginx.

    ReplyDelete
  8. still confuse can u tell more detail with video ?

    ReplyDelete
  9. hi Mr thammada this is not workin for gramam.today domain in godDDY

    ReplyDelete
  10. i use this for creat user profile rediect to subdomain but profile is my path not auto redirect to sub domain its work when direct open how i do this help me plz

    ReplyDelete
  11. hello, I was unable to create a custom A record for HOST @. it gives me an error message saying "That is not a valid zone name"

    ReplyDelete
    Replies
    1. Same for me too..I tried to create CNAME for host@ and www. But it shows me error.

      Delete
    2. I also couldn't add cname record, It shows me error, i m having my domain at bigrock

      Delete
  12. am trying to implement the dynamic subdomain on godaddy but it is not working. Example: signup.mysite.com. the signup is a folder in my root directory. Help from someone...

    ReplyDelete
  13. Hi, i followed your steps and done all those things. But i got "pageok" text with blank page. My hosting domain and server in GODADDY. Please help me. Thanks.

    ReplyDelete
    Replies
    1. Check your server .htaccess is working or not?

      Delete
    2. Hi, thanks for your response. In my server .htaccess working perfectly. But we are having multi domain shared host in godaddy. We don't have dedicated IP. All domains having same IP address. So my doubt, wildcard DNS(*.mywebsite.com) not working in shared host(without dedicated IP). Is it right?

      Delete
  14. Can i need VPS/Dedicated ? or available on cPanel Reseller ??

    ReplyDelete
  15. can you send me example code ...

    ReplyDelete
  16. Nice article sir. is this SEO friendly?

    ReplyDelete
  17. hello sir,
    First of all thanks for this great tutorial but i am not able to do the same please help me regarding this .
    Please give me your personal mail or anything so that i can send everything to you .
    Please help me i am in big trouble
    Thanks

    ReplyDelete
  18. subdomain folder is not creating

    ReplyDelete
  19. Hi Dear,

    i have create the CNAME and A(Host) records but getting the : Internal Server Error

    Can you help..

    ReplyDelete
  20. hello,
    Thank for wonderfull script, I am using it in my new blog site to display seperatily user's blog. Here i create subdomain using user's username like http://username.sitename[.]com.

    My issue is,

    when i go on user's blog there session is not working.
    Second is Access-Control-Allow-Origin, fonts not working .

    Thanks

    ReplyDelete
  21. Hi,

    Your article is very interesting. I have a question. How would you maintain a wildcard sub domain SSL cert on YOURWEBSITE.COM in this scenario?

    Thank you.

    ReplyDelete
  22. I tried this and is working fine. But how to exculde css js and other folder from this redirection, else all my css and js files are redirected to index.php

    ReplyDelete
  23. Hello, this is a great article but, i have to make functionality like that, please guide us is it possible on shared hosting.? or need dedicated server,
    Thank you

    ReplyDelete
  24. Hello i have a Question will i be able to Delete a Sub domain later down the road? Second question is it possible to create this with user accounts. So not just anyone can make one?

    ReplyDelete
  25. page not found when i create page fill and create. Its relate about dns setting or a Programmically error please send back answer fast its creatically important. :)
    Server Go daddy.

    ReplyDelete
  26. could I use htaccess in xampp application ?

    ReplyDelete
  27. As in your example (http://page1.thewallchat.com/), CSS files and others do not load, everything in the internal folder is redirected to index.php. How to solve this?

    ReplyDelete
  28. This comment has been removed by the author.

    ReplyDelete
  29. Hi, I was unable to create a custom A record for HOST @. it gives me an error message saying "That is not a valid zone name". I am using godaddy shared hosting. Please help me.

    Thanks.

    ReplyDelete
  30. Hello, Do I have to set up ServerAlias in apache config for wildcard subdomains?

    ReplyDelete
  31. Is it possible to point sub domain to sub directory.

    ReplyDelete
  32. Hello i have a question i was wondering if it is possible to create this using local hosting like xampp or something like this?

    ReplyDelete
  33. Go to your domain DNS(Domain Name Settings), click add zone record ==> go my domain DNS but no view (ADD zone) || DNS setting in goddady ==> We can't display your DNS information because your nameservers aren't managed by us.|| in this case EDIT my Advanced Features (1.Manage Templates,2.DNSSEC,3.Host names) ????

    ReplyDelete
  34. Does it work on shared hosting?

    ReplyDelete
  35. Problems with url Access-Control-Allow

    ReplyDelete
  36. Awesome! I have been searching for help on this. thanks dude you just made my day.

    ReplyDelete
  37. Is this work in localhost?

    ReplyDelete
  38. Please how do I use two variables like demo.example.com/product?id=cloth

    using the first Get variable as subdomain and the second being id as parameter?

    ReplyDelete
  39. Thanks for sharing this. How can we have https for the subdomain. wildcard ssl is taking time to start working as https

    ReplyDelete
  40. This is very interesting.
    I have one issue.
    How can I SSL active for all Dynamic Subdomains?

    ReplyDelete
  41. anybody explain if automatic subdomain on member sign up could be done on shared hosting?

    ReplyDelete

mailxengine Youtueb channel
Make in India
X