Bonjour à tous,
J'utilise Slim Framework, et il est dit dans la doc de placer ses fichiers dans un dossier pubic/
et de faire pointer via apache son site dans ce dossier.
Mon problème est que je suis sur un mutualisé et je ne peux pas dire à apache d'aller chercher mon site dans ce dossier.
Donc comment faire pour que les utilisateurs qui tappent : http://www.monsite.fr/
voient le site comme s'ils avaient tappé http://www.monsite.fr/public/
sans que public
ne soit visible ?
Merci d'avance
Bonne journée
Réécriture d'url à la volée ;)
Il faut normalement que l'extension mod_rewrite soit activée( normalement tous les hébergeurs l'activent)
Puis il suffit de créer un fichier .htaccess
à la racine puis d'y ajouter:
# On vérifie que le module est chargé
<IfModule mod_rewrite.c>
# On met en route le moteur de réécriture
RewriteEngine on
# Et on pointe vers le dossier public
RewriteRule ^ public/ [L]
</IfModule>
J'ai une erreur 500 quand je charge mon site et dans les logs j'ai :
AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
J'ai essayé avec :
# On vérifie que le module est chargé
<IfModule mod_rewrite.c>
# On met en route le moteur de réécriture
RewriteEngine on
# Et on pointe vers le dossier public
RewriteRule ^ public/index.php [L]
</IfModule>
Je n'ai pas d'erreur 500 mais Slim ne route plus rien
Essaie ça:
A la racine du site:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Dans le dossier public
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
(tiré de CakePHP)
Bonjour,
Peux tu essayer ceci ?
Les XXXXX sont un dossier si ce n'est pas directement dans www.
RewriteEngine On
RewriteBase /XXXXXXX/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Cordialement
Pour info, j'ai un site en Slim avec :
Pas de .htaccess à la racine
Juste un .htaccess dans public/ (comme si dessus)
Et tu arrives à avoir ton site en http://www.monsite.fr/ sans le dossier public
et surtout sans avoir accès au fichiers de conf d'apache ?
Si oui je voudrais bien que tu me dises comment tu fais
C'est un hebergeur privé chez un prestataire qui refuse de toucher aux fichiers apache. Oui ce client est chiant.
Quand j'arrive sur leur FTP je suis directement à la racine du site. C'est à dire que /
renvoi directement sur http://www.monsite.fr/
Alors je viens de regarder :
J'ai dans mon dossier racine un .htaccess contenant :
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Et c'est tout
Bonjour @BaBeuloula, as tu essayer la solution que j'ai mise ? Ca ne marche pas ? peut etre que l'URL Rewriting n'est pas activé. Crée un fichier .php avec phpinfo(); dedans pour voir si c'est activé
J'ai tous testé des bouts de code et rien.
L'URL Rewriting est bien activé car pour le moment je fonctionne avec le dossier /public/