# [Apache] URL rewriting

## Neuromancien

Bonsoir,

J'aimerais utiliser l'URL rewriting sous Apache. Dans mon httpd.conf, j'ai :

```
LoadModule rewrite_module modules/mod_rewrite.so
```

Dans les autres fichiers de configuration (00_default_settings.conf et 00_error_documents.conf), j'ai remplacé AllowOverride None par AllowOverride All.

Or pour les pages présentes dans mon répertoire public_html local, j'obtiens une errer 404. Je ne sais pas ce qui manque. Qui peut m'aider ?

----------

## NEOxAKIRA

ça manque d'information là, le contenu de tes fichiers .htaccess par exemple ?

----------

## Neuromancien

 *NEOxAKIRA wrote:*   

> ça manque d'information là, le contenu de tes fichiers .htaccess par exemple ?

 

Le problème ne vient pas du .htaccess qui fonctionne très bien chez mon hébergeur mais de la configuration d'Apache.

----------

## adjaxio

 *Neuromancien wrote:*   

>  *NEOxAKIRA wrote:*   ça manque d'information là, le contenu de tes fichiers .htaccess par exemple ? 
> 
> Le problème ne vient pas du .htaccess qui fonctionne très bien chez mon hébergeur mais de la configuration d'Apache.

 

Bonjour,

a tu compiler apache avec le support de l'URL Rewriting ?

Bye

----------

## Neuromancien

 *adjaxio wrote:*   

>  *Neuromancien wrote:*    *NEOxAKIRA wrote:*   ça manque d'information là, le contenu de tes fichiers .htaccess par exemple ? 
> 
> Le problème ne vient pas du .htaccess qui fonctionne très bien chez mon hébergeur mais de la configuration d'Apache. 
> 
> Bonjour,
> ...

 

Oui.

----------

## Neuromancien

Personne n'a une idée ? Il s'agit d'un problème de configuration de Apache chez moi, mais je ne trouve pas ce qui cloche...

----------

## Jamesbch

Salut,

peut-être que tu devrais poster ton fichier de configuration (00_default_*). En tout cas chez moi je n'ai pas modifié 00_error_documents.conf (restaure-le si tu peux).

Dans mon 00_default_settings.conf j'ai ceci d'intéressant :

```
<Directory />

        Options FollowSymLinks

        AllowOverride All

</Directory>

```

Il s'applique donc à tout le site en question. T'as bien le module apache "rewrite" d'activé dans portage ? T'as regardé les logs pour savoir si ça cloche (/var/log/apache2/error_log) ? Sinon le reste à l'air bon.

Bonne chance.

----------

## fb99

Je confirme il faut que tu mette au moins ce que dit Jamesbch

Pour ma part j'ai ça et ça fonctionne

 */etc/apache2/modules.d/00_default_settings.conf wrote:*   

> 
> 
> ...
> 
> <Directory />
> ...

 

bon courage

----------

## Neuromancien

Bonjour,

Je pose une nouvelle fois la question car je ne parviens toujours pas à faire fonctionner l'URL rewriting avec Apache sous Gentoo.

Mon fichier .htaccess est correct, il fonctionne chez mon hébergeur.

Apache est compilé avec rewrite.

Dans httpd.conf, j'ai :

```
RewriteRule ^(.*)$ index.php [L]
```

----------

## ppg

T'as pensé aux mods-enable et mods-available ?

J'ai jamais utilisé apache sous gentoo, mais si ça se comporte comme sous debian (je pense qu'à 99% c'est le cas) il faut renseigner /etc/apache2/mods-available/rewrite.load et faire pointer (avec un ln -s) /etc/apache2/mods-enable/rewrite.load sur /etc/apache2/mods-available/rewrite.load.

Je ne sais pas si sur gentoo la conf est exactement la même, mais il devrait y avoir une manip similaire à faire ?

J'espère que ça peut t'aider, excuse-moi d'avance si le problème n'a rien à voir   :Embarassed: 

----------

## Ey

Si tu as un probleme dans ton public_html tu devrais plutot regarder les options dans 00_mod_userdir.conf

----------

## Neuromancien

 *Ey wrote:*   

> Si tu as un probleme dans ton public_html tu devrais plutot regarder les options dans 00_mod_userdir.conf

 

En effet le problème semble lié au userdir.

Pour les scripts situés dans /var/www/localhost/, l'URL rewriting fonctionne bien avec le .htaccess suivant :

```
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 
```

En revanche dans public_html, ça ne fonctionne pas :

Si le je laisse le .htaccess tel quel, je suis redirigé vers http://localhost/.

J'ai modifié la règle en mettant l'URL complète :

```
RewriteRule ^(.*)$ http://localhost/~mon_user/index.php?url=$1 [L,QSA] 
```

Là, ça fonctionne à moitié. Je suis redirigé vers l'URL modifiée et ce n'est plus l'URL réécrite qui apparaît dans la barre d'adresse de mon navigateur.

----------

