Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je viens de finir mon site en utilisant Zend 1.9.1 maintenant il est temps de le mettre en ligne, j'ai un hébergement chez http://www.infomaniak.ch.
Donc j'ai tous uploadé, mis ma db en place, jusque là pas de problème.
donc vient le moment de mettre le .htaccess en place et c'est là que je galère depuis hier matin.
Je suis parvenu à mettre en place que quand je vais sur www.monsite.be, que l'on soit redirigé vers www.monsite.be/public/, mais j'aimerai bien supprimer le /public/ comme dans ma version local.
Voici mon .htaccess qui est à la racine de mon espace ftp
RewriteEngine on RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_URI} !^/public/ RewriteRule (.*) http://www.monsite.be/public/$1 [R=301] RewriteRule ^.*$ - [NC,L]
et voici le .htaccess que j'ai mis dans public
# Règles de réécriture pour Zend Framework RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteBase /public RewriteRule !\.(js|ico|png|gif|css|jpg)$ index.php # Sécurité : Ne pas autoriser le parcours de répertoires Options -Indexes
Si quelqu'un pouvait me donner une solution, cela serait sympa.
Merci,
Ted
Hors ligne
Salut !
Essaye avec :
.htaccess sous /web :
RewriteEngine on RedirectMatch ^/public/index.php http://www.monsite.be/ [R=301,NC] rewritecond %{http_host} ^(www.)?monsite.be [NC] rewriterule ^(.*)$ http://www.monsite.be/$1 [R=301,NC] RewriteCond %{HTTP_HOST} ^(www.)?monsite.be$ [NC] RewriteCond %{REQUEST_URI} !^/public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /public/$1 [L] RewriteCond %{HTTP_HOST} ^(www.)?monsite.be$ [NC] RewriteRule ^(/)?$ public/index.php [L]
.htaccess sous /web/public :
AddDefaultCharset UTF-8 SetEnv APPLICATION_ENV production RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
++
Dernière modification par ubini (22-10-2009 16:18:14)
Hors ligne
Merci de ton aide.
Je viens de faire le test et maintenant j'ai :
Erreur du serveur! Le serveur a èté victime d'une erreur interne et n'a pas été capable de faire aboutir votre requête. Soit le server est surchargé soit il s'agit d'une erreur dans le script CGI. Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
Tu aurais une idée?
merci
Ted
Hors ligne
essaye de supprimer la ligne contenant le RedirectMatch pour tester.
Hors ligne
ça ne change rien.
Merci
Ted
Hors ligne
la ligne RedirectMatch est bien fausse et à supprimer, pour le reste c'est ok chez moi chez infomaniak Je n'utilise pas les même répertoires, il y a une faute de frappe que je ne vois pas ?
Hors ligne
Merci de ton aide.
En faite, je me rends compte que je n'ai pas encore fait pointer mes DNS vers infomaniak,
pour pouvoir tester si tout fonctionne correctement.
Est-ce que ca pourrais venir de là???
Ted
Hors ligne
Oui, c'est bien ça, il y a un RewriteCond qui vérifie le nom de domaine. Par contre je suis surpris du message d'erreur.
Je dis ça mais je ne suis pas spécialiste en la matière, alors tape pas trop fort si je me trompe
Hors ligne
Est-ce qu'il y aurait un autre façon de faire???
Je ne tape jamais les gens qui me donne un coup de main
Ted
Hors ligne
Le support d'Infomaniak m'a donné une solution :
RewriteRule (.*) /public/$1 [P] RewriteRule ^.*$ - [NC,L]
Mais maintenant j'ai des liens qui contiennent public et d'autre pas, j'ai trouvé d'où cela vient :
quand j'écris ceci
<a href="/pages/index/id/1">
ça me donne : http://www.monsite.be/pages/index/id/1
Par contre quand je mets ceci
<a href="<?php echo $this->url(array('controller'=>'store','action'=>'add'),null,true); ?>">
ça me donne : http://www.monsite.be/public/store/add
Je penses que cela vient du $this->url.
Si quelqu'un avait une idée pour supprimer ce public, je le remercie d'avance.
Merci,
Ted
Hors ligne