#1 Le 02/08/2016, à 13: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, à 22:37)
Hors ligne
#2 Le 02/08/2016, à 14: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, à 14: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, à 15: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, à 15: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, à 16: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, à 16: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, à 07: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 ?
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#9 Le 03/08/2016, à 08: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, à 15:26
- krodelabestiole
Re : [Résolu] Rewrite Apache2 et wordpress
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.
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#11 Le 03/08/2016, à 19: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, à 21:16
- krodelabestiole
Re : [Résolu] Rewrite Apache2 et wordpress
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]
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#13 Le 03/08/2016, à 21: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
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#14 Le 03/08/2016, à 21: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, à 21: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, à 20: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)
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#17 Le 04/08/2016, à 20: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, à 21: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, à 22: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>
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#20 Le 04/08/2016, à 22: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, à 20: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 ?
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#22 Le 05/08/2016, à 20:36
- krodelabestiole
Re : [Résolu] Rewrite Apache2 et wordpress
bon voila j'ai ajouté un avertissement sur la doc
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#23 Le 05/08/2016, à 20: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, à 20: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, à 20: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é).
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne