2010-04-30 8 views
0

J'ai utilisé Passenger pour déployer une application RoR vers un sous-URI sur mon domaine. Le problème auquel je suis confronté est que le sous URI semble être sensible à la casse. Naviguer vers http://mydomain.com/RailsApp résout bien. Cependant, si je vais à http://mydomain.com/railsapp, http://mydomain.com/railsApp, ou toute autre variation, j'obtiens une erreur 404. Comment ces requêtes utilisant des boîtiers différents peuvent-elles être résolues correctement?Passager: RailsBaseURI sensible à la casse?

Voici mon fichier de configuration Apache:

<VirtualHost *:80> 
    ServerName mydomain.com 
    ServerAlias www.mydomain.com 
    DocumentRoot /www/mydomain/public 

    <Directory "/www/mydomain/public"> 
     RailsEnv "production" 
     Order allow,deny 
     Allow from all 
    </Directory> 

    RailsBaseURI /RailsApp 
    <Directory "/www/RailsApp/public"> 
     RailsEnv "development" 
     Options -MultiViews 
    </Directory> 
</VirtualHost> 

Toute aide est très appréciée. Merci!

+0

URL sont par sensibles à la casse définition, donc avant de poser cette question soit Assurez-vous que vous avez une bonne raison de les rendre insensible à la casse. La meilleure chose à faire sera de renommer le dossier en version minuscule sur le serveur, mais cela ne fera que le faire fonctionner en minuscules, il ne le rendra pas sensible à la casse. – Gareth

+0

@Gareth: La raison en est que les utilisateurs peuvent toujours naviguer à l'URL indépendamment de leur enveloppe de lettre. Par exemple, aller sur http://stackoverflow.com/Questions ou http://stackoverflow.com/QuEsTiOnS pointe toujours vers http://stackoverflow.com/questions. –

Répondre

0

Merci ba pour moi pointant dans la bonne direction. J'ai fait des recherches et trouvé le module mod_speling. Cela ne rend pas seulement l'URL insensible à la casse mais vérifie également les fautes d'orthographe.

Pour activer mod_speling:

sudo /usr/sbin/a2enmod speling 

sudo /etc/init.d/apache2 force-reload 
sudo /etc/init.d/apache2 restart 

Pour utiliser mod_speling, inclure la directive CheckSpelling on dans votre section d'hôte virtuel:

<VirtualHost *:80> 
    CheckSpelling on 

    ... 
</VirtualHost> 
Questions connexes