1 votes

Comment écrire des règles pour les sous-domaines aléatoires dans Apache?

Actuellement, notre site web est créé en utilisant les technologies Java, donc nous avons installé Tomcat, Apache sur VPS et déployé. Nous créons des sous-domaines pour les clients enregistrés en activant le Wildcard en créant un enregistrement A avec le nom *.mondomaine.

Ensuite, nous devons gérer les sous-domaines dans Apache... Une fois Apache configuré et que nous avons vérifié qu'il fonctionne pour des sous-domaines aléatoires, nous devons écrire des règles de réécriture pour mapper les sous-domaines vers une autre URL (peu importe le langage que nous utilisons).

Ainsi, UserName8328.domain.com demanderait en réalité quelque chose comme domain.com/utilisateurs/UserName8328 depuis votre serveur.

Pouvez-vous donc me suggérer comment faire cela ? Pour cette question, il y a un autre lien

Cette discussion sur la question se trouve sur ce lien en JAVA. En attendant, nous sommes bloqués avec un problème lié à Apache. Pouvez-vous nous aider sur ce point ? https://stackoverflow.com/questions/19188877/what-is-best-way-to-create-sub-domains-dynamically-by-using-java-whenever-user-r

1 votes

En fait, vous pouvez trouver la plupart des informations requises dans la documentation du serveur Web Apache à httpd.apache.org/docs/current/mod/mod_rewrite.html. Je suis un utilisateur de nginx donc excusez-moi ici... mais votre question est assez simple.

1voto

Mat Carlson Points 111

Pour le côté Apache, mes sites utilisent :

httpd.conf

    ServerName domain.com
    DocumentRoot /var/www/siteroot/
    ServerAlias *.domain.com www.domain.com
    VirtualDocumentRoot /var/www/siteroot/users/%1

Ce que cela fera, c'est que tout sous-domaine chargera la même page que htttp://domain.com/users/sous-domaine. Si vous utilisez www.sous-domaine.com, vous devrez peut-être utiliser %2 au lieu de %1 ci-dessus.

Pour le côté .htaccess, je jetterais un œil à (cette question ServerFault.)[Résolution des problèmes d'une réécriture de sous-domaine générique dans .htaccess.

Je ne suis pas un gars de Java, mais l'idée est similaire. En PHP, je vérifierais quelle adresse ils ont réellement visitée (comme votre question initiale sur StackExchange), puis j'utiliserais cela pour charger les informations de l'utilisateur et donc la page. Donc, tous les sous-domaines pour un site que je créerais seraient comme suit :

  1. L'utilisateur demande htttp://userid.domain.com.
  2. Le serveur voit que *.domain.com va vers domain.com/users/?q=sous-domaine. L'utilisateur ne voit pas cela - il pense toujours être sur userid.domain.com.
  3. htttp://domain.com/users/index.php vérifie le champ de requête "q" - S'il est trouvé, il charge le contenu pour cet utilisateur.

Tout au long du processus, l'utilisateur verra htttp:// userid.domain.com même si le script s'exécute comme htttp://domain.com/users/index.php. Essentiellement, le script voit le sous-domaine comme une variable de chaîne de requête. Alternativement, vous pouvez rediriger tous les utilisateurs vers htttp://domain.com/users/index.php et utiliser des variables d'environnement pour trouver le sous-domaine.

Je publierais une nouvelle question sur StackExchange, ou je réécrirais la vôtre actuelle, une fois que vous aurez vérifié que vous êtes en mesure de voir htttp://domain.com/users/index.html pour htttp://kdfsdkfsdklfsd.domain.com.

0 votes

Merci pour avoir donné votre suggestion. Et un autre point que je voudrais clarifier.... Par exemple, si je clique sur un url comme ceci.. www.somenameee.wordpress.com Il pointe vers la page d'erreur par défaut. Si l'utilisateur n'est pas disponible. Comment réaliser cela... Devrions-nous apporter des modifications dans le fichier httpd.conf ou devrions-nous le faire dans le code Java ?

0 votes

Je le gérerais dans un script. Je suppose que vous utiliserez le même fichier et répertoire (sur le système de fichiers) pour gérer tous les utilisateurs. La plupart des entreprises qui font des choses similaires redirigent les messages d'erreur vers leur page principale ou d'aide.

0 votes

Sur une note annexe, je rendrais le www. facultatif - Il n'est pas entièrement accepté d'exiger le sous-domaine du 4ème niveau. Bien sûr, www.images.google.com fonctionne, mais la plupart des gens préfèrent taper images.google.com à la place (mais les deux fonctionnent toujours).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X