2010-09-09 8 views
1

Lorsque j'exécute une application Rails nouvellement créée sur Apache, je ne peux accéder qu'au fichier par défaut de la page d'accueil (standard app/public/index.html). Lorsque j'essaie d'exécuter une méthode personnalisée via URI, la page n'est pas trouvée. Donc je devine que quelque chose ne va pas avec mon .htaccess. Dois-je "l'ouvrir" pour chaque contrôleur?Problème Ruby on Rails .htaccess

RewriteCond %{HTTP_HOST} ^example.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.example.com$ 
RewriteRule ^main(.*) "http\:\/\/127\.0\.0\.1\:12005\/$1" [P,L] 

Edit: J'ajoute bâtarde journal

Error calling Dispatcher.dispatch #<NoMethodError: private method `split' called for nil:NilClass> 
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:52:in `dispatch_cgi' 

Répondre

0

Heh, Ruby on Rails ne se soucie pas de .htaccess. Bienvenue dans le monde MVC :-) Très probablement, vous n'avez défini aucune route à l'intérieur des rails. Ou vous n'utilisez pas de passager.

+0

MVC n'a rien à voir avec le routage. – Gumbo

+0

Je ne peux pas installer gem passager sur mon serveur d'hébergement. –

+0

Mongrel + apache? Intéressant configuration ... Vous ne pouvez pas utiliser passager ou licorne (avec nginx)? Rendre les choses plus faciles ... – Reactormonk

0

D'abord, vous pouvez modifier les deux premières règles:

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ 

En outre, la dernière règle n'a pas besoin de tous ces antislashs, et comme il y a une barre oblique avant 1 $, vous devriez avoir un en^main (. *) aussi:

RewriteRule ^main/(.*)$ "http://127.0.0.1:12005/$1" [P,L] 

Essayez si cela fonctionne. Je ne sais pas ce que P fait et comment cela fonctionne, donc si le problème est là je ne peux pas vous aider ..

+0

Sur remplacer l'une ou l'autre des lignes ne se passe rien. Même pas index.html montre. Déployer Rails est vraiment douloureux. –

+0

Désolé, je n'ai aucune connaissance de Rails. Je pense que htaccess n'a rien à voir avec le framework que vous utilisez, mais si je me trompe, je ne peux pas faire grand-chose. Que se passe-t-il si vous changez [P, L] '[L]'? –

+0

Je ne sais vraiment pas. Ce code est quelque chose que Cpanel génère en tant que RewriteRule. –