Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/08/2016, à 14:52

petit_lutin

[Résolu] Rewrite Apache2 et wordpress

Bonjour,
Je tente sur ce forum car je ne pense pas que ce soit un pb de wordpress.
Je n'arrive pas à faire de redirection sous wordpress (le classique lien http://localhost/xxx/?p=123 qui passe à http://localhost/xxx/exemple-article/)
Après deux jours de recherche voici où j'en suis :
Dans le .htaccess, j'ai :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
</IfModule>
# END WordPress

Dans le 000-default.conf j'ai :

<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>

<Directory /usr/share>
	AllowOverride None
	Require all granted
</Directory>

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	<RequireAny>
		Require ip 127.0.0.1
		Require ip 192.168.1
	</RequireAny>
</Directory>

## ZONE PRIVEE
Alias /private /home/xxx/serveur/private
<Directory /home/xxx/serveur/private>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
 	<RequireAny>
 		Require ip 127.0.0.1
 		Require ip 192.168.1
 	</RequireAny>
</Directory>

Dans apache2.conf j'ai :

<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>

<Directory /usr/share>
	AllowOverride None
	Require all granted
</Directory>

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
	Options +FollowSymlinks
	RewriteEngine on
	RewriteRule ^page-1$ /page.php?id=1 [L]
</Directory>

#<Directory /srv/>
#	Options Indexes FollowSymLinks
#	AllowOverride None
#	Require all granted
#</Directory>

J'ai déjà tenté en mettant All à chaque AllowOverride, au cas où... mais rien.

Et enfin, 

:~$ sudo a2enmod rewrite
Module rewrite already enabled

Des "sudo service apache2 restart" à chaque modif, mais immanquablement j'ai un 404.
Je pense avoir explorer les différentes solutions trouvées sur les forums...
Est-ce que quelqu'un aurait une piste pour que je puisse avancer ?
Merci

Dernière modification par petit_lutin (Le 04/08/2016, à 23:37)

Hors ligne

#2 Le 02/08/2016, à 15:50

gl38

Re : [Résolu] Rewrite Apache2 et wordpress

Je crois que c'est plutôt un problème de wordpress qui se règle dans la page d’administration dans Réglages > Permaliens
Cordialement,
Guy

Hors ligne

#3 Le 02/08/2016, à 15:53

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

j'ai oublié de préciser que cette action a été faite, défaite et refaite, plusieurs fois, pour valider ou réécrire de .htaccess ... d'où mon idée de départ que le problème ne vient pas de wordpress.

Hors ligne

#4 Le 02/08/2016, à 16:21

gl38

Re : [Résolu] Rewrite Apache2 et wordpress

J'ai déjà eu des soucis avec les permaliens mais je n'ai pas touché au .htaccess et encore moins aux réglages de apache pour les régler.
Cordialement,
Guy

Hors ligne

#5 Le 02/08/2016, à 16:28

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Certes, mais dans mon cas, j'ai plusieurs sites avec wordpress hébergé chez ovh, mais la redirection de leur copie ne fonctionne pas en local, quelque soit le site et la configuration, d'où l'hypothèse d'un problème sur mon serveur local : Apache 2 Ubuntu 14.04

Hors ligne

#6 Le 02/08/2016, à 17:22

gl38

Re : [Résolu] Rewrite Apache2 et wordpress

Je n'ai jamais vérifié que ce que j'ai chez ovh marchait chez moi. La version du manager a changé et j'ai du mal à m'y retrouver.
En tout cas les liens sont inscrits dans la base mysql et avec phpmyadmin on peut voir ce qu'ils donnent chez ovh et en local. Est-ce que les liens d'ovh ont encore un sens localement ?
Cordialement,
Guy

Hors ligne

#7 Le 02/08/2016, à 17:28

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Les sites (j'ai même fait une installation propre d'un wordpress en local) fonctionnent bien, sauf pour la redirection. C'est justement mon mystère. En partant d'un wordpress fraîchement installé en local, on devrait pouvoir changer les permaliens sans envoyer vers un 404. Hors là ce n'est pas le cas.
J'ai tenté différentes combinaisons et installations mais j'ai toujours cette redirection impossible.
D'où mon problème...

help :'(
Merci

Hors ligne

#8 Le 03/08/2016, à 08:19

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

ya rien pour faire ce type de redirection dans ton .htaccess.

il est modifiable (chmod 777) ? tu peux t'en assurer et désactiver / réactiver les permaliens ?

Hors ligne

#9 Le 03/08/2016, à 09:55

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Pas de problèmes de droits. si je supprime .htaccess, il le recrée avec les directives de redirection. Cela reste un fabuleux mystère.

Hors ligne

#10 Le 03/08/2016, à 16:26

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

petit_lutin a écrit :

il le recrée avec les directives de redirection

hm ok par contre tout ce que je vois dans le .htaccess c'est que l'intégralité des requêtes sont redirigées sur index.php (sauf s'il s'agit d'un fichier ou d'un répertoire existant).
donc wordpress fait ensuite sa tambouille en interne ça me parait compliqué à débugger à ce niveau là.

est-ce que tu peux tester simplement l'usage de rewrite rules sur ton serveur ?
genre

RewriteEngine On
RewriteRule .* test\.php

avec ça quoi que tu tapes tu devrais être redirigé sur test.php, donc tu te créés un fichier test.php qui contient n'importe quoi et tu tapes n'importe quoi comme url qui arrive dans le même dossier.

Hors ligne

#11 Le 03/08/2016, à 20:33

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

En effet, en simplifiant le problème, on devrait avoir quelques pistes. Donc prenons le cas suivant :
Un serveur apache 2 sous ubuntu 14.04 avec les paramètres suivant :
000-default.conf

<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>

<Directory /usr/share>
	AllowOverride None
	Require all granted
</Directory>

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	<RequireAny>
		Require ip 127.0.0.1
		Require ip 192.168.1
	</RequireAny>
</Directory>

## ZONE PUBLIC
Alias /public /home/xxx/serveur/public
<Directory /home/xxx/serveur/public>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Require all granted
</Directory>

## ZONE PRIVEE
Alias /private /home/xxx/serveur/private
<Directory /home/xxx/serveur/private>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
 	<RequireAny>
 		Require ip 127.0.0.1
 		Require ip 192.168.1
 	</RequireAny>
</Directory>

apache2.conf

<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>

<Directory /usr/share>
	AllowOverride None
	Require all granted
</Directory>

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
	Options +FollowSymlinks
	RewriteEngine on
	RewriteRule ^page-1$ /page.php?id=1 [L]
</Directory>

#<Directory /srv/>
#	Options Indexes FollowSymLinks
#	AllowOverride None
#	Require all granted
#</Directory>

La commande suivante avec son résultat :

:~$ sudo a2enmod rewrite
Module rewrite already enabled

Maintenant nous allons y mettre trois fichiers :
index.php

<?php
echo "Perdu !";
?>

test.php

<?php
echo "Gagner !";
?>

.htaccess

RewriteEngine On
RewriteRule .* test\.php

Quand nous accédons à la page /index.php , nous voyons à l'écran le message "Perdu !"
Pourquoi ?
Vous avez... le temps que vous voudrez.

Hors ligne

#12 Le 03/08/2016, à 22:16

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

petit_lutin a écrit :

Maintenant nous allons y mettre trois fichiers.

dans /var/www ?

tu devrais peut-être enlever le codee suivant de ton apache2.conf, je sais pas si ça gêne mais ça a rien à faire là :

RewriteEngine on
RewriteRule ^page-1$ /page.php?id=1 [L]

Hors ligne

#13 Le 03/08/2016, à 22:20

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

et oui cest sûr que ca gêne, le flag [L] c'est la fin du traitement des rewrite rules

Hors ligne

#14 Le 03/08/2016, à 22:39

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Fait, je n'avais pas touché à ces lignes là... Mais une fois retiré et enregistré, j'ai fait

:~$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2               [ OK ] 

Vidé le cache firefox... retenté avec les petits fichiers (index et test) et : "Perdu !"
J'ai tenté différentes syntaxes pour le htaccess mais rien n'y fait. Quelque soit la redirection demandé et les conditions il ne se passe rien.

Je regardais dans les logs d'apache (error.log) j'ai ces lignes qui s'inscrivent lors du redémarrage...

[Wed Aug 03 22:35:25.276025 2016] [mpm_prefork:notice] [pid 6006] AH00169: caught SIGTERM, shutting down
[Wed Aug 03 22:35:26.364221 2016] [mpm_prefork:notice] [pid 6123] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.19 configured -- resuming normal operations
[Wed Aug 03 22:35:26.364311 2016] [core:notice] [pid 6123] AH00094: Command line: '/usr/sbin/apache2'

Si ça parle à quelqu'un... on ne sait jamais. Je creuse toujours.

Hors ligne

#15 Le 03/08/2016, à 22:43

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

J'ai des liens symboliques dans le /var/www/ qui m'amène sur des dossiers plus accessibles. La racine du serveur correspond à la racine du dossier /home/xxx/serveur/private du 000-default.conf

Hors ligne

#16 Le 04/08/2016, à 21:41

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

la commande

apache2ctl -M | grep rewrite

te montre bien rewrite_module ?

si tu tapes asfkdljhdafhjasfh dans le .htaccess tu as bien une erreur 500 ? (désolé pour le test foireux)

Hors ligne

#17 Le 04/08/2016, à 21:56

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Disons que t'as une piste, (la première depuis longtemps sur pour mon cas) :

:~$ apache2ctl -M | grep rewrite
 rewrite_module (shared)

Mais un .htaccess  foireux ne donne pas d'erreur 500. Visiblement, je pourrais y mettre quoi que ce soit, rien ne se produirait.
La question devient : pourquoi le htaccess n'est pas pris en compte ?
Merci pour cette avancée.

Hors ligne

#18 Le 04/08/2016, à 22:17

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Dans apache2.conf, j'ai :

AccessFileName .htaccess

<FilesMatch "^\.ht">
	Require all denied
</FilesMatch>

AccessFileName .httpdoverride
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files> 

Mais là encore, je cherche des causes d'oubli du htacvcess et je n'en trouve pas.

Hors ligne

#19 Le 04/08/2016, à 23:18

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

donc il faudrait se pencher sur une mauvaise utilisation des directives AllowOverride :
http://httpd.apache.org/docs/2.4/mod/co … owoverride

ou de la directive AccessFileName :
http://httpd.apache.org/docs/2.4/mod/co … ssfilename

en l'occurence dans le apache2.conf que tu viens de poster tu définis 2x cette directive au même niveau. mais en définissants "AccessFileName" comme ".httpdoverride" tu écrases sans doute "AccessFileName .htaccess".
tu peux essayer de virer :

AccessFileName .httpdoverride
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files> 

Hors ligne

#20 Le 04/08/2016, à 23:36

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Voilà, c'était cela. Je ne connais pas assez ces directives pour distinguer le doublon et je ne sais pas comment il est arrivé là.
J'ai formaté il n'y a pas longtemps et je n'ai pas touché à ces lignes lors de la nouvelle configuration.
Donc en supprimant dans le ficher apache2.conf la partie suivante :

AccessFileName .httpdoverride
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files> 

Çà a résolu mon affaire.
Merci beaucoup !

Hors ligne

#21 Le 05/08/2016, à 21:23

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

en me demandant d'où pouvait venir ton code bizarre et pas du tout à jour () j'ai trouvé cette page :
https://doc.ubuntu-fr.org/tutoriel/securiser_apache2
qui me semble proposer pas mal de techniques au mieux dépassées au pire foireuses.

tu as suivi ce guide à un moment ou à un autre ?

Hors ligne

#22 Le 05/08/2016, à 21:36

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

bon voila j'ai ajouté un avertissement sur la doc

Hors ligne

#23 Le 05/08/2016, à 21:40

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

En effet, j'ai du un temps faire un copier-coller à partir de cette page, et traîné la configuration par la suite. Encore merci !

Hors ligne

#24 Le 05/08/2016, à 21:50

petit_lutin

Re : [Résolu] Rewrite Apache2 et wordpress

Les informations obsolètes parasitent les recherches sur le sujet sur google. Je n'arrêtais pas de tomber sur des versions anciennes ou des informations mal identifiées et donc qui m'orientait vers des manipulations dérangeantes.
J'ai tendance, comme beaucoup je pense, à chercher d'abord sur ce site, puis élargir la recherche. Et aujourd'hui, je tombe sur pas mal de pages obsolètes ou manquantes relatives aux nouveaux logiciels des dernières versions d'ubuntu... difficile de suivre l'évolution des logiciels.

Hors ligne

#25 Le 05/08/2016, à 21:53

krodelabestiole

Re : [Résolu] Rewrite Apache2 et wordpress

je te conseille d'essayer d'enlever toutes les autres modifs que tu as pu faire en suivant cette page :
toutes celles qui contiennent order , allow ou deny ne fonctionneront pas, et les autres sont quasi inutiles et retirent des fonctionnalité qui peuvent s'avérer nécessaires.

le meilleurs moyen de sécuriser apache c'est de le garder à jour, et surtout de garder tes scripts à jour : dans ton cas suivre les màj de WordPress et éviter les extensions WP foireuses (surtout pas d'extension qui prétendent améliorer la sécurité).

Hors ligne