Skip to main content

Domain and subdomain pointing

Stop here!  If you want to do domain pointing, before you even start with htaccess code, make sure your pointed domain name resolves to your main domain name default page.  Many people think they have trouble with their htaccess code only to find the domain name is not properly pointed to their package in the first place.  So make sure your pointed domain name works, resolving to your default page, before going any further.  This is obviously not an issue if you are doing subdomain pointing.

The examples below assume that your root public directory (where you would put this .htaccess file) is htdocs, which is the default setup for Apache.   If your setup is different, then you may need to adjust the examples accordingly.

This approach has you code the first part of the domain or subdomain name and the associated subdirectory in your .htaccess file.   For example:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/
subdirectory/
RewriteCond %{HTTP_HOST} ^(www\.)?
name\.
RewriteRule ^(.*)$ 
subdirectory/$1 [L]

Note the second line has name, NOT name.com.   And note that there are some restrictions when using this method.
  • Domains and subdomains are treated exactly the same.  The pointing is based on the first argument of the url.  In this example name.com (as a pointed domain name) or name.domain.com (as a pointed subdomain) ends up at htdocs/subdirectory.   This is particularly useful in certain situations, for example if you want the subdomains of more than one domain to point to the same place, or if you have both a .com and a .net domain name you want pointed to the same place.
  • You must create a subdirectory under htdocs for every domain and subdomain you wish to be pointed.  The subdirectory name is then coded into the htaccess file.
  • The first argument in the url must be unique.  You cannot have two domains or subdomains with the same name.  sub.domain1.com and sub.domain2.com will both go to the same subdirectory.
  • It defaults to allow www. as a prefix on any domain or subdomain.
  • The htdocs directory is the "drop through" for any domain or subdomain not found.  You may want to put an error not found page as the default page.  Or, you could choose to have your main website be the "drop through" and just leave that one in htdocs.
There is also a simplified variation of this method that can be used in less complex situations where you are simply pointing a domain name and want ALL subdomains of that one domain to be pointed to a specific directory.   In this example name.com and any subdomain (including www) of that domain would be pointed to htdocs/subdirectory:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/
subdirectory/
RewriteCond %{HTTP_HOST} 
name.com$
RewriteRule ^(.*)$ 
subdirectory/$1 [L]

In both examples, the htacess code works this way.   The first two lines set up the Apache server rewrite process.   Then you have two RewriteCond statements and a RewriteRule for EACH domain or subdomain you wish to point.

There is a second approach where pointed domains and subdomains become automatic, meaning no specific code is required for each pointer.   While this method is much easier to use and does not need to be modified when adding more domains or subdomains, note that there are some restrictions when using this method.
  • Domains and subdomains are treated exactly the same.  The pointing is based on the first argument of the url (except www if used).
  • You must create a subdirectory under htdocs with a - at the front for every domain and subdomain you wish to be pointed.  The directory name must match the first argument in the url (except for www if used).  For example, domain.com would have htdocs/-domain and sub.domain.com would have htdocs/-sub and domain2.com would have htdocs/-domain2  etc.
  • The first argument in the url, and therefore the directory name, must be unique.  You cannot have two subdomains with the same name.  sub.domain1.com and sub.domain2.com will both go to the directory htdocs/-sub
  • You cannot have any other directory names that start with a - character.
  • It defaults to allow www. as a prefix on any domain or subdomain.
  • The htdocs directory is the "drop through" for any domain or subdomain not found.  You may want to put an error not found page as the default page.  Or, you could choose to have your main website be the "drop through" and just leave that one in htdocs.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/-
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]*)
RewriteCond %{DOCUMENT_ROOT}/-%2 -d
RewriteRule ^(.*)$ -%2/$1 [L]

The htaccess code works this way.  The first two lines set up the Apache server rewrite process.  The first RewriteCond allows www. to be a prefix and captures the request name.  The second RewriteCond checks for the existence of a subdirectory with the request name.  The third RewriteCond ensures we are not caught in a looping operation.  The RewriteRule rewrites the request with the subdirectory name (which was already verified).

Forcing or eliminating the WWW.
If you want your website to always use the WWW. prefix (like www.domain.com) then this htaccess code is your answer.   You may want to force the WWW becuaase you like it that way, or because you want consistency for search engines.   What ever the reason, use this htaccess code and you will always have the WWW domain prefix used for your website.

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


The way this works is if the domain name does not start with WWW then the request is rewritten with the WWW.   The WWW is really just treated as any other subdomain.   So if you have other subdomains (like sub.domain.com) where you do not want the WWW added (converted to www.sub.domain.com), then you need to include another RewriteCond line for each one.

Or if you want to always eliminate the www prefix, use this htaccess code.

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


Fixing the trailing slash problem
If you have a pointed domain or subdomain, and you which to load the default page for a subdirectory under the pointed directory, and you do not have a trailing slash on the address, you get the pointed directory name inserted in the URL.   Use this htaccess code to fix that problem

RewriteRule ^([^\.]+[^/])$ http://%{HTTP_HOST}/$1/ [R=301,L]

The way this works is if the request does not have a slash at the end and does not contain a period then it will be rewritten with a slash at the end.   So you cannot use this method if your directory names contain periods or if you use search arguments in the defualt loading page without specifying the page name (with a period in it).

Be sure and put these two lines above the other redirects in the .htaccess file, but after the RewriteEngine On statement.

Comments

Popular posts from this blog

links

0.  https://michael67654.qowap.com/64523001/new-pos-technique-to-perk-up-your-company 1.  https://johnnydinqr.blog2learn.com/52856602/new-pos-system-to-perk-up-your-company 2.  http://edwinsqgcu.onesmablog.com/New-POS-Process-to-Perk-Up-Your-company-43309737 3.  http://chloe69246.bloguetechno.com/New-POS-Process-to-Perk-Up-Your-Business-39814721 4.  http://jacob87541.pointblog.net/New-POS-Technique-to-Perk-Up-Your-online-business-43741223 5.  http://arlette53302.thezenweb.com/New-POS-System-to-Perk-Up-Your-online-business-41464611 6.  http://devinpixna.tinyblogging.com/New-POS-Program-to-Perk-Up-Your-online-business-46354577 7.  https://rylanevsom.blog5.net/46759651/new-pos-program-to-perk-up-your-small-business 8.  https://mariowoesh.affiliatblogger.com/56515206/new-pos-system-to-perk-up-your-organization 9.  https://liam66429.diowebhost.com/60164326/new-pos-procedure-to-perk-up-your-company 10.  https://henry19219.fitnell.com/4557...

Raisonnement, la résolution de problèmes

Les chercheurs ont d'abord développé des algorithmes mimétiques raisonnement humain étapes que les gens utilisent pour résoudre le casse-tête ou faire méthode d'exclusion logique. [2] Dans les années 1980 et 1990 fin, l'étude de la grippe aviaire a développé des méthodes de traitement de l'information incertaine ou incomplète, en utilisant des concepts de probabilité et de l'économie. [3] Pour ces problèmes, les algorithmes requis matériel assez puissant pour effectuer des calculs de géant - à subir « combinaisons d'explosion »: la quantité de mémoire et le temps de calcul peut devenir invisible prendre si la résolution d'un problème difficile. La plus haute priorité est l'algorithme de recherche pour résoudre le problème.  Les gens utilisent généralement les jugements rapides et intuitifs plutôt que pas de déduction que les chercheurs en IA d'origine peuvent simuler. [5] Amnesty International a progressé en utilisant la résolution de problèmes « c...

Tracking and Securing Downloads

If you want to report or track downloads from your website, try this script.   This script will send you an email every time you have a download.   The email will tell you what file was downloaded and who did the download.   You could change this script to keep counts (store them in flat file or MySQL) if you desire. The variable $directory is the directory where the download files are located.   If you want the script in the same directory as the files then use "./" as the directory (you must always have the slash). In your html page, use the following structure as your download link (where name.txt is the file name to download): <a href="download.php?file=name.txt">download</a> Then you use the following script (called download.php): - - Start Script Here - - <?php $emailaddress  =  "email@yourdomain.com" ; $filename  =  $_GET [ 'file' ]; $directory  =  "downloads/" ; $path  =  "$directory$filename" ; putenv (...