Définir des URL pour la redirection vers une URL spécifique sans réécriture


Encore moi

Je construis un planificateur Web qui a une structure multi-locataire, ce que j'essaie de faire est d'attribuer une URL personnalisée qui pointe vers mon application à chaque acheteur.

Donc, essentiellement, lorsqu'un utilisateur m'achète une licence, je vais créer une URL personnalisée sur mon serveur Web comme ceci:

http://webserver/foo.scheduler.com/login

fooest le nom de l'utilisateur qui a acheté la licence et schedulerfait partie par défaut de l'url, un autre exemple avec plus d'acheteurs:

http://webserver/foo.scheduler.com/login
http://webserver/foo2.scheduler.com/login
http://webserver/foo3.scheduler.com/login

essentiellement il y a trois acheteurs (mes clients), chaque point de terminaison personnalisé me permet d'identifier les informations d'identification de base de données correctes, car dans ma logique, chaque locataire a une base de données spécifique, pour plus d'organisation des données.

En fait, mon application se trouve sur ce point de terminaison:

http://webserver/scheduler

Je veux savoir s'il est possible de pointer toutes les URL personnalisées vers http://webserver/scheduler, sans réécrire l'URL dans le navigateur, par exemple, lorsque l'utilisateur va http://webserver/foo.scheduler.com/logindans le vrai http://webserver/scheduler/login, mais que l'utilisateur continue de voir http://webserver/foo.scheduler.com/login.

Comment faire ça? Dans mon .htaccess, disponible à la racine du dossier de l'application, j'ai ce contenu:

RewriteEngine On

RewriteBase /webscheduler/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

cela me permet de réécrire le chemin de base vers l'index et de shunter la trace vers le contrôleur spécifique.

Nigel B. Peck

Heureux de vous aider.

Obtenez un certificat SSL valide pour * .scheduler.com. Vous en aurez besoin si vous voulez que cela fonctionne. Êtes-vous sûr de vouloir utiliser HTTPS? Votre autre URL n'est pas HTTPS. Ensuite, vous devrez configurer votre hôte virtuel pour que * .scheduler.com fonctionne correctement avec ce certificat. Avoir seulement :

<VirtualHost *:443>
    ServerAlias *.scheduler.com
    DocumentRoot "/var/www/html/progetti/scheduler"
</VirtualHost>

Ça ne va pas être assez. Vous avez besoin de tous les éléments mod_ssl configurés là-dedans, comme avec l'autre hôte virtuel. Vous pouvez simplement utiliser cet hôte HTTPS par défaut au lieu d'en ajouter un autre et le modifier.

La première chose à faire est de faire fonctionner votre hébergement pour https: //*.scheduler.com/, puis de le pointer simplement au bon endroit.

Que voulez-vous dire par votre point de terminaison http://webserver/scheduler? Ce n'est pas un nom de domaine valide. Veuillez clarifier ce que vous entendez par là et je mettrai à jour ma réponse avec plus d'informations. Le code est-il sur le même serveur?

-

Mise à jour

Donc, pour faire cela sans SSL, ajoutez ce qui suit à votre "000-default.conf", après ce qui s'y trouve actuellement:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.scheduler.com
    ServerAlias *.scheduler.com
    UseCanonicalName off
    DocumentRoot /var/www/html/progetti/scheduler
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/html/progetti/scheduler>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

-

Mise à jour

Pour que http: //webserver/foo.scheduler.com fonctionne et serve / scheduler, ajoutez ceci au VirtualHost qui était déjà là. Pas le nouveau ajouté ci-dessus, l'original en haut.

RewriteEngine on
RewriteRule ^(/[^./]+\.scheduler\.com)(?:$|/(.*)$) /scheduler/$2

Faites-moi savoir tout problème. Si vous préférez le mettre dans votre .htaccess, il devra être mis à jour.

Articles connexes


.htaccess réécriture d'URL pour une URL spécifique

Shoyeb Sheikh J'ai un modèle comme, www.example.com/api.php/1, comment supprimer .php de cette URL, actuellement j'ai ceci, RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] Mais cela ne fonctionne que si je mets www.ex

Redirection Spring MVC vers jsp pour une URL spécifique

Gautam Kumar J'utilise Spring MVC pour le projet AngularJS. Je sers JSON à partir de l'URL préfixée par "/ rest / *". Tous les fichiers jsp sont accessibles directement et le routage est géré en utilisant angular-js. Je dois faire des validations personnalisée

Réécriture d'URL IIS Redirection vers la base

Pheonyx J'espère que vous pourrez m'aider, je suis proche mais j'échoue au dernier obstacle. J'essaie de rediriger une partie de mon site Web vers la page d'accueil si je ne suis pas parcouru à partir de certaines IP. Cependant, il échoue avec la redirection.

comment faire une redirection vers une URL spécifique ?

AMC J'exécute opecart 3 avec le nouveau thème de journal 3. La page du produit comporte un bouton "achat rapide" qui ajoute automatiquement les détails du produit au panier, puis redirige le client vers la page de paiement. Je n'arrive pas à changer l'URL du b

Désactiver la redirection sur htaccess pour une URL spécifique

Ahmed J'ai htaccess comme avec certaines redirections, je veux éviter/désactiver/ne pas rediriger des URL spécifiques utilisées dans les hooks pour envoyer des données par POST , ces URL sont : https://www.example.com/index.php?route=zoho /product/autoAdd http