2009-09-01 8 views
3

Salutations!CakePHP et .htaccess dans un environnement d'hébergement partagé

J'ai une application basée sur CakePHP sur l'hébergement partagé Je me demande s'il existe un moyen de nettoyer l'URL via .htaccess. Ce qui me dérange est que je dois avoir index.php dans ou j'obtenir un 404:

project.com/index.php/controller/method

Au début, je recevais une erreur 404, peu importe quoi et mon admin hôte a fini par la mise en RewriteEngine ce qui est de quoi il ressemble maintenant

<IfModule mod_rewrite.c> 
RewriteEngine off 
RewriteRule ^$ webroot/ [L] 
RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

y at-il fixer pour cela sans le .htaccess? Comme c'est le cas actuellement, cela pose-t-il un risque de sécurité?

Merci

Répondre

4

Vous avez besoin de trois fichiers .htaccess:

  • /.htaccess
  • /app/.htaccess
  • /app/webroot/.htaccess

Si celui que vous collé dans votre question est celle qui est à la racine de votre site web, c'est probablement d'où vient votre problème. Ce fichier de directives réécrirait les URL sur project.com/webroot/, qui n'existe pas. Il devrait rediriger vers project.com/app/webroot/, qui à son tour réécrira à index.php? Url = $ 1 (par rapport à project.com/app/webroot/).

Je ne colle pas les fichiers ici; les trois d'entre eux sont disponibles dans les versions de CakePHP ainsi que dans le livre: http://book.cakephp.org/2.0/en/installation/url-rewriting.html (vérifiez le 3ème article dans la page).

+0

... merci pour l'avance, je vais vérifier cela dès que possible. – vector

+0

+1 merci pour l'astuce –

+1

le lien est mort. –

2

Etes-vous sûr le module mod_rewrite est activé sur votre hébergement mutualisé?

+0

... bonne question, je ne suis pas honnête :-( – vector

+0

Si ce n'est pas, cela signifie que je suis coincé avec elle? – vector

+0

Oui, vous pouvez vérifier avec phpinfo Créer un fichier php avec cette instruction à l'intérieur et l'exécuter sur votre serveur: riotera

Questions connexes