Bonjour à tous,
je débute donc désolé pour les questions qui peuvent paraitre idiotes pour certains.
Ma question concerne plus un problème au niveau d'Apache, mais je l'ai rencontré en regardant le Tutoriel Vidéo PHP : Développer un site. J'espère que j'ai poster au bon endroit.

Bon, je commence. J'en suis à la vidéo n°2 " Tutoriel Vidéo PHP : Développer un site : Jour 2, La structure PHP".
Au bout de 9-10min il est expliqué la methode du rewrite d'url en utilisant des .htaccess. Voyant le principe je recopie les lignes.
Dans le premier .htaccess :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]

Dans le 2ème :

RewriteEngine On
RewriteRule (.*) webroot/index.php [L]

Malheureusement, j'ai beau y mettre du miens cela ne semble pas fonctionner chez moi. J'obtient une erreur 404 :

The requested URL /Users/Daff/Sites/tutoPHP7j/webroot/index.php was not found on this server.

Je précise que je suis sur Mac OS X Lion.

  • Serveur Apache : celui fourni avec l'OS

  • PHP : idem

  • Daff
    : étant mon compte utilisateur; Sites = la racine du serveur; tutoPHP7j = dossier dans lequel je souhaites recoder le tuto.

  • J'ajoute que j'ai cherché sur internet et remarqué qu'il fallait dans un premier temps que j' autorise l'utilisation des htaccess sur mon serveur apache.
    Ceci est fait mais ...

  • Pourtant quand je tape l'adresse http://localhost/~Daff/tutoPHP7j/webroot/
    je suis bien sur la page "index.php"

Merci d'avance pour vos réponses. Je débute et j'ai soif d'apprendre.

9 réponses


Daff
Auteur
Réponse acceptée

En fait sur Mac tu as le choix avec le serveur Apache de créer ton site dans 2 endroits :

  • Soit au niveau du système (commun à tous les utilisateurs) dans /Library/WebServer/Documents/
    et pour s'y connecter tu dois taper http://localhost
  • Soit au niveau de l'utilisateur même dans /Users/NomUtilisateur/Sites/
    et pour s'y connecter tu dois taper http://localhost/~NomUtilisateur
    J'ai choisi le 2ème choix du coup je me connectes avec ce fameux caractère "~" (tilde).

Par contre grâce à ta réflexion, je me suis mis a tester sur le dossier système (le 1er choix plutôt que le 2ème) et cela semble fonctionner. Je vais donc travailler le tuto comme çà pour l'instant.
Si quelqu'un a une idée pour résoudre le pb avec le 2ème choix, je suis prenneur.

revlam
Réponse acceptée

Oui c'est faisable mais pas très conventionnel c'est juste ça :)
http://www.novell.com/coolsolutions/tip/15832.html

Salut essaye de mettre $1 à la fin de ta ligne de code .
En fait le $1 sert a récupérer la première parenthèse c'est à dire (.*) !

RewriteRule (.*) webroot/index.php$1

Et dis moi se que sa fait.

Daff
Auteur

Bonjour Kalagan,
je viens de faire le test mais cela fonctionne pas.
En tout cas, merci pour la réponse car cela m'a permis de voir que j'avais mal copié cette fameuse ligne 2.
J'avais écrit :

RewriteEngine On
RewriteRule (.*) webroot/index.php [L]

Au lieu de :

RewriteEngine On
RewriteRule (.*) webroot/$1 [L]

Pour info, je pense qu'il s'agit d'un problème de configuration d'Apache. Je fais cette réflexion d'après des tests que j'ai effectué :

Je vois bien que le Rewrite URL fonctionne mais il ne semble pas s'occuper du fichier "index.php" qui se trouve à la racine de "webroot" (Cf. 1er test)

Les .htaccess fonctionnent car on voit bien que quand tu es dans le ROOT de ton site il te dirige bien vers webroot.
Par contre pourquoi le caractère "~" avant ton user ? Ou point ton serveur web ?
Je suis aussi sur Lion et je n'est pas ça caractère, dans une url c'est bizarre...

C'est pas très conventionnel... Perso sur mac j'ai installé WAMP ! Et je le fait pointer ou je veux mon apache :)

Daff
Auteur

J'ai voulu installer chacun des éléments un par un (Apache; PHP; MySQL) pour apprendre comment cela se fait sur mac. Je l'avais fait il y a pas mal de temps sur Windows. Mais apparemment, j'aurais dû installer MAMP.

L'important c'est qu'une des solutions fonctionne (choix n°1). Maintenant, comme je l'ai dit pour que je comprennes je vais chercher pourquoi avec ce fameux choix n°2 ce la ne fonctionne pas. Je vais regarder du côté du caractère "~" (tilde).

Si je trouve je posterais la solution. Ou si quelqu'un l'a connait, merci de la poster. Si çà peut servir à quelqu'un.

Daff
Auteur

Mouais çà m'a l'air bien compliqué tout çà.
Merci pour l'info.

En tout cas je confirme bien que si j'utilise le dossier webserver du système /Library/WebServer/Documents cela fonctionne.
C'est bien l'adresse avec ce fameux tilde qui pose problème.

Merci en tout cas revlam. ;-)
Je reviendrais sans doute poser d'autres questions dans mon apprentissage. Cela fait plaisir de voir que le communauté GrafikArt est sympathique et réactive.

Avec plaisir ;)