Apache - rec.domaine.ext redirigé vers www.domaine.ext

Tags: #<Tag:0x00007f63f3fc9938>

Bonjour à tous,

J’ai un petit soucis avec apache, je suis en train de créer plusieurs environnements de développement sur un petit VPS Debian. J’ai donc une qualification, une recette et une production.
Pour cela j’ai créé plusieurs virtualhost en précisant différents sous-domaine qui pointent chacun vers un répertoire spécifique :

  • qualification.mondomaine.ext
  • recette.mondomaine.ext
  • www.mondomaine.ext (production)

j’ai une page d’accueil banale pour chaque environnement qui est accessible par ces différentes adresses.

ensuite je veux gérer plusieurs application pour chaque environnements et donc y accéder par un sous dossier, ainsi pour mon test j’essai d’accéder à l’url suivante :
http://recette.mondomaine.ext/monappli

Malheureusement ça ne fonctionne pas, lorsque je fais ça mon navigateur redirige immédiatement la requête vers http://www.mondomaine.ext/monappli (qui n’existe pas pour l’instant)
avec ça, dans le access.log d’apache j’ai une erreur 416.

Une précision importante, auparavant j’avais créé un alias vers /monappli qui n’existe plus actuellement.

Enfin lorsque je change le dossier cible “monappli” par “test123” et que je requête sur l’url suivante : http://recette.mondomaine.ext/test123
ça fonctionne.

En gros, la redirection est faite juste pour ce sous-dossier, je ne comprends pas, y-a-t’il un système de cache sur apache qui mémoriserait mon alias à présent inexistant ?

Si vous avez une idée de ce qui ne va pas, ou une piste pour m’aiguiller, ce serait bien sympathique car je ne sais plus trop quoi faire à présent.

Merci d’avance pour vos réponses :slight_smile:

Tu n’aurais pas, dans /monappli , un fichier .htaccess qui fait quelques redirections/réécritures ?

Hello !

Merci de ta réponse, je n’ai aucun .htaccess sur mes sites :frowning:

Désolé pour le retard, mon VPS arrivait à terme et j’en ai profité pour prendre une offre plus récente et j’ai réinstallé mon serveur. Cela m’a pris un peu de temps.

Malheureusement ce problème persiste, le site cible est un wordpress, alors peut-être que cela vient de la migration d’url, je ne l’ai pas faite mais je ne crois pas que ce soit ce problème car lorsque je renomme mon dossier monappli cela fonctionne (comme dit dans mon premier message).

Alors si c’est un wordpress, tu as bien un .htaccess à la racine du cms (et d’autres dans les sous répertoires, il me semble), sinon ton wordpress ne fonctionne pas.
Mais puisque tu pensais qu’il n’existait pas, c’est que tu n’y as jamais touché, donc en standard il ne doit faire que les redirections nécessaires à la mécanique de base du wordpress.
Maintenant, tu as une deuxiême couche de redirections, celle qui se fait au niveau du php du cms. Ce sont tous les réglages de redirection effectués par wordpress lui même ou par ses plugins. Toutes ces redirections sont stockées en bdd et font partie de la config du site.
Du coup, si tu pour refaire le site tu as réimporté dans ta maquette les bases de données de ton site en production, tu as pu aussi réimporter les redirections php du vieux wordpress.
Ca peut venir de là ?

Alors pour te répondre, je pense que c’est un problème mais pas le seul, j’ai effectué une mise à jour de la base hier en remplaçant toutes les anciennes URL par les nouvelles via le script suivant :

SET @OLD_SITE = 'http://www.mondomaine.ext/monappli';
SET @NEW_SITE = 'http://recette.mondomaine.ext/monappli';

-- URL de configuration du site
UPDATE wp_options
SET option_value = replace(option_value, @OLD_SITE, @NEW_SITE)
WHERE option_name = 'home'
OR option_name = 'siteurl';

-- URL de référence des articles
UPDATE wp_posts
SET guid = REPLACE (guid, @OLD_SITE, @NEW_SITE);

-- URL présentes dans le contenu des articles
UPDATE wp_posts
SET post_content = REPLACE (post_content, @OLD_SITE, @NEW_SITE);

-- URL des données meta
UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, @OLD_SITE, @NEW_SITE);

Mais ça ne fonctionne pas mieux, je remarque notamment que lorsque j’accède à l’url http://recette.mondomaine.ext/monappli/index.php, le domaine n’est pas redirigé, sauf pour tous les éléments inclus (styles, scripts, images).

J’ai réalisé un dernier test, j’ai renommé mon site et recréé un dossier monappli avec juste un index.html et un style.css :

Pour le coup là, pas de .htaccess ni de redirection quelle qu’elle soit.

Je pense que cela vient vraiment d’apache mais je ne comprends pas pourquoi…

Quand tu dis “pas de htaccess”, tu n’en as pas dans /monappli, ok, mais tu es bien certain que tu n’en as pas à la racine / ?
Parce que des redirection au niveau de la config du serveur, je n’ai jamais vu ça.
Dans le htaccess ou au sein du cms lui même quand il y en a un, je veux bien, mais je ne vois pas à quel niveau le serveur pourrait faire une redirection.

Hello !
Concernant le .htaccess autant pour moi j’ai fait une boulette j’ai du supprimer celui de wordpress sans m’en rendre compte, bref je l’ai rajouté voici ce qu’il contient :

# BEGIN WordPress
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase /monappli/
	RewriteRule ^index\.php$ - [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule . /monappli/index.php [L]
</IfModule>

# END WordPress

J’ai un peu de mal avec les directives apache, tu confirmes que c’est bien cela ?

Pour l’instant mes 3 sites identiques, la seule différence qu’il y ait entre chaque site sont les url en base de données.
Maintenant je remarque que lorsque je charge http://www.mondomaine.ext/monappli/index.php/accueil j’ai la bonne page mais toutes les inclusions (css, js, images) viennent de http://recette.mondomaine.ext/monappli
Puis lorsque je vais à la racine je suis redirigé vers cette même url.

Pour le 3e site (http://qualification.mondomaine.ext/monappli/), les inclusions sont correctes mais le problème de redirection est toujours présent sur la racine du site.

Je trouve ça étrange et je ne trouve pas de piste pour remettre ça en place…

Ton htaccess wordpress est standard, c’est bon.

Sinon, en relisant le tout, vu que ce n’est pas dans le htaccess, c’est donc bien le wordpress qui redirige.
Dans le backoffice de chaque wordpress, dans “réglage/général”, tu as bien la config de slug qui va bien:
Adresse de WordPress (URL) = http://.mondomaine.ext/monappli/
Adresse du blog (URL) = http://.mondomaine.ext/
?

Non ce n’était pas le cas les 2 étaient sous la forme : http://sousdomaine.mondomaine.ext/monappli/
Donc j’ai mis comme tu l’as écrit mais ça ne change rien.
Je ne comprends vraiment pas :confused:

Tu as essayé en inversant ?
En mettant / dans le premier champs et /monappli/ ?

Sinon, je manque d’idée.

Hello !

Bon j’ai fait une petite boulette… mon wp-config.php de production pointait vers la base de recette, ça a corrigé le problème sur la prod et j’ai reconfiguré tous mes virtualhosts et à priori ça fonctionne, mais je ne sais pas dire la cause du problème.
Enfin à mon avis c’était bien un problème de configuration au niveau de la base ainsi que du htaccess.

Donc finalement j’ai mis la même chose pour les paramètres site_url (Adresse web de WordPress (URL) ) et home ( Adresse web du site (URL) ) soit http://www.mondomaine.ext/monappli/ (pour ma prod)

Merci pour tes réponses notamment pour le .htaccess ça m’a bien aidé.

À+ !