Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to offer custom sub-domains for SAAS Application

How do i offer Basecamp/SAAS App like sub domains to clients?

For example, my website URL is http://www.example.com whenever the user signup i want to offer them url like http://company.example.com which should load files/contents from /app directory of the website.

And later i want them to choose their own domain/sub-domain via CNAME, so that they can have URL like http://clients.mywebsite.com

I want to do this in Pure PHP and .HTACCESS and offcourse everything happens automatically.

And i want to keep URL structure same.., that is http://company.example.com/login, http://company.example.com/accounts, http://company.example.com/files/style.css though these files are located inside /app directory i want them to be accessed like this.

I can handle all PHP functions, i need help with .htaccess codes and how to go about CNAME.

like image 593
Dhruv Kumar Jha Avatar asked Jan 08 '11 08:01

Dhruv Kumar Jha


People also ask

What is the difference between subdomain and custom domain?

The subdomain option allows you to choose a subdomain of totalwebsiteprotection.com (mycompany.totalwebsiteprotection.com). No extra setup is required! 2. For even more control, the custom domain option allows you to use any domain you like (backups.mycompany.com).

How do I create a custom sub domain?

Creating Custom SubdomainsClick the Phishing tab. Navigate to the Domains tab and click + Create New Phish Link Domain. In the Subdomain field, enter the subdomain you want to use. From the Please select a domain drop-down, select a primary domain for the subdomain.


1 Answers

Make sure DNS resolves all subdomains by including following in domain's zone:

*.example.com. 14400 IN A HereBeIP

Next, configure web server to recognize all incoming requests, for Apache, you need to add following to VirtualHost:

ServerAlias *.example.com

That's it. The only thing remaining is the logic in the code, you need to check host name to see whether a request was done to example.com or foo.example.com.

Updated with more details.

So, assuming your files are in /path/to/files/app, you need to configure virtual host like this:

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

This way all requests will resolve to /app directory. To test it, apply above DNS configuration or simply add the domains you want tested into your hosts file, /etc/hosts on Linux or c:\Windows\System32\drivers\etc\hosts on Windows.

like image 148
David Kuridža Avatar answered Dec 04 '22 02:12

David Kuridža