Bonjour,
je suis le tutorial "création d'un site de A à Z" et je bloque sur le PATH_INFO encore une fois.

Dans mon fichier php.ini (/etc/php5/apache2/php.ini) j'ai bien décommenté la ligne

cgi.fix_pathinfo=1

. Et dans mon fichier de configuration apache (/etc/apache2/sites-available/default) j'ai ça :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /www/htdocs/monsite
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        AcceptPathInfo On
    </Directory>
    <Directory /www/htdocs/monsite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        AcceptPathInfo On
        Order allow,deny
        allow from all
    </Directory>

Et pourtant, quand je vais chercher mon index.php dans le chemin ./view/pages/index et que j'appelle simplement un

print_r ($_SERVER);

le PATH_INFO n'apparaît pas. Aurais-je omis un détail ? Merci pour ce super tuto et pour toute aide, bienvenue.

3 réponses


roswellenshort
Auteur
Réponse acceptée

Auto-réponse pour la partie sur la redirection des URL. Le module rewrite n'était pas installé pour Apache 2 (pas de présence du module dans le phpinfo). J'ai donc créé un fichier "rewrite.load" dans /etc/apache2/mods-enabled contenant la ligne LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so. Cela semble fonctionner pour le moment

Hello,

Le PATH_INFO ne s'affiche que si tu a des éléments appelant après ta racine :
root/www/tonsite/index/--> tout se qui s'affiche à partir de là est ton PATH_INFO.

du moins pour moi c'est comme ça que ça marche sur mon local et distant. De plus a tu vérifié tes .htaccess ?

en espérant avoir répondu à ta question

J'ai repris à zéro en prenant soin de bien faire un .htaccess. Ce sont exactement les mêmes que le tuto vidéo.
le .htaccess dans /www/htdocs/monsite :

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

Et celui dans /www/htdocs/monsite/webroot :

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

Et pourtant, j'obtiens une erreur 500 lorsque je tente ne serait-ce que d’accéder à "monsite" .

voici la config Apache (/etc/apache2/sites-available/defaut)

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /www/htdocs
    <Directory />
        Options FollowSymLinks
        AllowOverride AuthConfig FileInfo Indexes Limit
        AcceptPathInfo On
        Order allow,deny
        allow from all
    </Directory>
    <Directory /www/htdocs>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride AuthConfig FileInfo Indexes Limit
        AcceptPathInfo On
        Order allow,deny
        allow from all
    </Directory>

L'erreur se situe sûrement au niveau Apache, mais je ne la vois pas. Merci pour toute aide