web-dev-qa-db-fra.com

XAMPP alias ou réécrire?

J'ai un site fonctionnant sur W2012 avec XAMPP. J'ai un site actif qui se trouvait dans le sous-dossier/foo. Il doit maintenant être changé en/home.

I set up an alias 

Alias /foo "C:/xampp/htdocs/home"

Cela prend les utilisateurs de foo -> à la maison ... mais ils perdent la page à laquelle ils allaient. Le problème est que beaucoup de pages sur foo ont été fournies en privé. Nous nous attendrions donc à ce que les utilisateurs comprennent qu'ils doivent copier leur page dans la nouvelle URL. J'ai besoin d'un utilisateur qui va à foo/client-demo pour aller automatiquement à home/client-demo.

Ajout: Hier j'ai mis en place une redirection.

Redirect foo/client-demo home/client-demo

Cela marche. Ensuite, j'ai pensé que la raison pour laquelle l'alias ne fonctionnait pas était mon SSO. J'ai un script de connexion SSO SAML qui redirige l'utilisateur vers la page de saisie. Donc, si l'utilisateur commence à foo/xyz, l'alias le renvoie vers home/xyz (peut-être sur le xyz), puis clique sur le script de connexion et retourne à sa page de référence.

2
blankip

... Cependant, ils perdent la page qu'ils allaient.

Je ne suis pas sûr de ce que vous entendez par ceci - ils ne devraient pas "perdre" quoi que ce soit? Cependant, l'URL dans la barre d'adresse ne sera pas mis à jour - si c'est ce que vous sous-entendez? Un Apache Alias convertit une URL en un chemin de système de fichiers côté serveur (généralement pour autoriser l'accès aux fichiers situés en dehors de la racine du document) - il ne manipule pas l'URL.

Il semble que vous souhaitiez une redirection externe (301 - permanent). Par exemple, en utilisant mod_alias (correspondance de préfixe):

Redirect 301 /foo /home

Cela suppose que vous n'utilisez pas déjà mod_rewrite pour traiter les redirections/réécritures (comme avec WordPress). Si vous utilisez déjà mod_rewrite à cette fin, vous devez également utiliser mod_rewrite pour cette redirection, car l'ordre d'exécution risque de ne pas être celui attendu. Par exemple:

RewriteRule ^/?foo(.*) /home$1 [R=301,L]
1
DocRoot