2010-04-30 4 views
0

Я использовал Passenger, чтобы развернуть приложение RoR для суб-URI в моем домене. Проблема, с которой я сталкиваюсь, заключается в том, что sub URI, похоже, чувствителен к регистру. Навигация по http://mydomain.com/RailsApp разрешает штраф. Однако, если я перейду на http://mydomain.com/railsapp, http://mydomain.com/railsApp или любой другой вариант, я получаю ошибку 404. Как эти запросы, использующие разные оболочки, решаются правильно?Пассажир: RailsBaseURI чувствительный к регистру?

Вот мой конфигурационный файл 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> 

Любая помощь очень ценится. Благодаря!

+0

URL, по определению чувствительны к регистру, поэтому, прежде чем задать этот вопрос будет что у вас есть веская причина сделать их без учета регистра. Самое легкое, что нужно сделать, это переименовать папку в ее нижнюю регистрационную версию на сервере, но это просто запустит ее как строчный, это не сделает ее нечувствительной к регистру. – Gareth

+0

@Gareth: причина в том, что пользователи могут перемещаться к URL независимо от их обложки. Например, переход на http://stackoverflow.com/Questions или http://stackoverflow.com/QuEsTiOnS по-прежнему указывает на http://stackoverflow.com/questions. –

ответ

0

Thanks ba указал мне в правильном направлении.

Я провел некоторое исследование и нашел модуль mod_speling. Это не только делает регистр нечувствительным к регистру, но также проверяет орфографические ошибки.

Чтобы включить mod_speling:

sudo /usr/sbin/a2enmod speling 

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

Чтобы использовать mod_speling, включите директиву CheckSpelling on в виртуальной секции хоста:

<VirtualHost *:80> 
    CheckSpelling on 

    ... 
</VirtualHost> 
Смежные вопросы