Aller au contenu

Apache et mod_rewrite


YannCo

Sujets conseillés

Salut, je pensai trouver un topic sur ce sujet mais je ne l'ai pas trouvé.

Donc, j'explique mon cas :

J'ai un p'tit dédié et je n'y connaissai rien à linux il y a encore une semaine.

Le mod_rewrite ne marche pas sur mes différents domaines.

Pourtant apache semble bien configuré.

J'ai un fichier httpd.conf ouff déja ça commence bien.

J'ai les lignes :

LoadModule rewrite_module /usr/lib/apache/mod_rewrite.so

et :

AddModule mod_rewrite.c

et le mod_rewrite.so se trouve bien dans le bon chemin, jusque là tout va bien.

Seulement, j'ai fait un test de base dans un fichier .htaccess et là ça ne va plus du tout.

le test :*

Options +FollowSymlinks

RewriteEngine on

RewriteRule ^nexistepas.html$ trouve.html [L]

Il doit certainement rappeler quelque chose à quelqu'un ;)

J'ai bien évidement créé mon fichier trouve.html, mais le problème vient bien avant, même en pointant sur mon nom de domaine j'ai une erreur 500.

J'ai vu qu'il y avait un truc du genre AlloOveride All à mettre mais je en vois pas où.

Donc une petite aide serait la bienvenue

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut YannCo, et bienvenue à bord du Hub !

Effectivement, ca dit quelque chose à quelqu'un ;)

As-tu vérifié si le modure rewrite est bien chargé ?

Dans une fenêtre telnet ou ssh ouverte sur ton dédié, lances httpd -l (L minuscule)

Tu devras peut-être mettre le chemin complet pour httpd. Le plus souvent, c'est /usr/local/apache/bin/httpd .

Si tu vois le mod_rewrite.c dans la liste, c'est bon signe.

Ensuite, il faut t'assurer que tu peux effectivement modifier le fonctionnement du serveur à l'aide de fichier .htaccess.

Mets la directive "AllowOverride all" dans la partie <directory> correspondant à ton/tes site(s) de ton fichier httpd.conf.

Ca devrait fonctionner ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Bon ben merci

Alors ça commence mal :D

le httpd -l

me donne uniquement :

Compiled-in modules:

http_core.c

mod_so.c

suexec: enabled; valid wrapper /usr/sbin/suexec

Mon serveur est chez 1 & 1 schlund pris via cineteck-fr.com il est équipé de suse 8.1 avec une interface Confixx 3 pour l'administration.

Je vais éssayer de trouver et m'informer où se trouve le fichier de configuration d'apche qui est utilisé par confixx.

Un locate httpd.conf me donne un seul fichier.

Si vous avez des idées je suis preneur :D

Lien vers le commentaire
Partager sur d’autres sites

Pas bon signe, ca veut dire que Apache n'a pas été compilé avec le module Rewrite .. Tu vas devoir passer par une recompilation d'Apache pour activer les modules.

Pour ca, il faut télécharger les sources d'Apache puis

./configure --prefix="chemin_apache" \

--enable-rewrite=shared

Chemin apache devant être /usr/local/apache (ou apache2 selon la version que tu veux).

Il y a bien qu'un seul fichier httpd.conf ;)

Sur apache.org, tu trouveras des docs et howto pour installer tout ca trés bien détaillés.

Lien vers le commentaire
Partager sur d’autres sites

Oki,

Httpd -l ne donne que les fichiers qui ont été complilés dans Apache.

Tu devrais alors voir le module rewrite dans phpinfo();

Normalement, le fichier httpd.conf se trouve (install standard) dans /usr/local/apache/conf

Si tu n'as pas ce répertoire, essayes /usr/apache/conf

Si tu as le programme apachectl, (/usr/local/apache/bin ou /usr/apache/bin) lances un "apachectl configtest" apres toute modif de httpd.conf. Tu dois obtenir "Syntax OK"

Une fois que tu as "Syntax OK", tu peux redémarrer Apache avec "apachectl restart"

Dan

Lien vers le commentaire
Partager sur d’autres sites

Donc, il me manque quelque chose encore là :P

mon fichier httpd.conf est dans etc/httpd

il contient bien les lignes requises

apachectl se situe dans usr/sbin

Quant je le lance j'ai :

NameVirtualHost 82.165.31.76:80 has no VirtualHosts

Syntax OK

jai fait un apachectl restart

Mais il doit encore manqué un ti chose

Sinon lors d'un phpinfo, j'ai éffectivement le mod_rewrite.

Lien vers le commentaire
Partager sur d’autres sites

Tu n'as pas configuré de virtualhost sur ton serveur ?

Combien de domaines vas-tu héberger ?

Tu devrais avoir une définition de virtualhost par domaine ...

Par exemple:

<VirtualHost xxx.xxx.xx.xx>   ----> adresse IP du serveur
ServerAdmin webmaster_AT_domain.com
DocumentRoot /home/domain/www  ----> repertoire du site
User domain
Group users
ServerName www.domain.com
ServerAlias domain.com
CustomLog logs/domain-access_log combined  ----> logs pour le domaine
ScriptAlias /cgi-bin/ /home/domain/cgi-bin/
</VirtualHost>

Lien vers le commentaire
Partager sur d’autres sites

Alors, d'après ce que j'ai compris c'est BIND qui gère tout mes domaines.

J'ai un fichier domaine.bd dans /var/named/confixxdns pour chaque domaine que j'héberge.

J'ai juste le nom de serveur d'informé dans apache.

C'est pas simple tout ça, en tout cas pour moi

Merci de l'aide ;)

Modifié par YannCo
Lien vers le commentaire
Partager sur d’autres sites

Salut YannCo,

Il ne faut pas confondre bind et Apache, ce sont deux services différents et tous deux indispensables.

Bind gère les DNS en faisant les relations entre les noms de domaine de l'adresse IP du serveur. Ton serveur est plus que vraisemblablement serveur DNS primaire pour les "zones" que tu as définires (les fichiers dans /var/named/...")

Apache sert les pages web... il faut donc qu'il sache quelles pages (emplacement physique des fichiers sur le disque) servir pour un domaine spécifique. C'est le rôle des "virtual hosts".

Sans ceux-ci, apache ne pourrait servir que les pages de la racine (serveur par défaut).

Quelle version d'Apache tournes-tu ? Et quelle version de Php ?

J'ai regardé le site de confixx.de ... et c'est loin d'offrir ce que permet webmin en administration serveur. :(

Dan

Lien vers le commentaire
Partager sur d’autres sites

Re tout le monde et bonne journée.

Webmin, je ne connais pas, mais confixx est hyper agréable, avec surement quelques inconvénients.

Ma version Apache est Apache/1.3.26 (Linux/SuSE) mod_ssl/2.8.10 OpenSSL/0.9.6g

Et pour PHP 4.2.2

Niveau Virtual host sur Apache je ne vaos rien, et j'ai pourtant plusisuers domaines su le serveur

Modifié par YannCo
Lien vers le commentaire
Partager sur d’autres sites

Salut YannCo,

Tu as manifestement une config non standard... :(

As-tu par chance les fichiers srm.conf et/ou accesss.conf (au même niveau que httpd.conf) ?

Sinon, voici l'explication des VirtualHost sur le site Apache (en français):

http://httpd.apache.org/docs/mod/core.html#virtualhost

Dan

Lien vers le commentaire
Partager sur d’autres sites

Salut, bon je ne perd pas espoir de faire fonctionner ce mod_rewrite.

Les VirtualHost, je connai mais sous Windows à petite échelle, c'est linux et le reste que j'ai du mal et me demandai si il fonctionnai de la même manièrel, à priori oui sauf dans le cas précis de ma configuration (pas de bol).

Tout ce qui est VirtualHost est commenté et est l'exemple classique fourni avec Apache

#NameVirtualHost *

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
#    ServerAdmin webmaster_AT_dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

#<VirtualHost _default_:*>
#</VirtualHost>

J'ai bien les fichiers access et srm.conf mais ils sont vides, enfin tout est commenté.

Est ce que j'ai compris ? le but est de trouver ces VirtualHost pour y mette AllowOverride All ?

où j'ai encore loupé quelque chose ?

Yann

Modifié par YannCo
Lien vers le commentaire
Partager sur d’autres sites

:D

Reglé,

Alors j'explique, grâce à vos infos, j'ai compris qu'il fallait l'option : AllowOverride All dans mes VirtualHost.

Les VirtualHost sont paramétrés dans un fichier spécifique de Confixx (moi je le trouve bien mais alors niveau configuration propriétaire et hors standart il est tres fort)

Donc j'ai rajouté cette ligne dans mes VirtualHost, et ça marche.

Encore merci pour votre aide qui m'a été tres précieuse.

Yann

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines plus tard...
Guest localhost

Salut !

Comment vous faite en cas de vhosting massif pour gerer dynamiquement suexec ? parce que avec mod_rewrite par exemple je n'ai pas trouvé de solution

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...