DocumentRoot HTACCESS

Par BaBeuloula, il y a 10 ans


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

15 réponses

intelligid, il y a 10 ans

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>
BaBeuloula, il y a 10 ans

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

intelligid, il y a 10 ans

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)

BaBeuloula, il y a 10 ans

Slim ne route toujours pas

Sam Uel, il y a 10 ans

Pour info, j'ai un site en Slim avec :
Pas de .htaccess à la racine
Juste un .htaccess dans public/ (comme si dessus)

BaBeuloula, il y a 10 ans

Des idées ?

Sam Uel, il y a 10 ans

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

BaBeuloula, il y a 10 ans

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

Jére My, il y a 10 ans

Bonjour, peut tu me dire quel hebergeur utilise-tu ?

BaBeuloula, il y a 10 ans

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/

Sam Uel, il y a 10 ans

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

Jére My, il y a 10 ans

Tu a essayer de mettre directement les fichiers du site a la racine de ton ftp soit "/"

BaBeuloula, il y a 10 ans

Oui mais dans tous les cas je dois aller dans /public/ pour visualiser le site

Sam Uel, il y a 10 ans

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é

BaBeuloula, il y a 10 ans

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/