乘客:RailsBaseURI区分大小写?

时间:2010-04-30 15:13:25

标签: ruby-on-rails passenger

我使用Passenger将RoR应用部署到我的域上的子URI。我面临的问题是子URI似乎区分大小写。导航到http://mydomain.com/RailsApp可以解决问题。但是,如果我转到http://mydomain.com/railsapphttp://mydomain.com/railsApp或任何其他变体,我会收到404错误。如何正确解析使用不同外壳的这些请求?

这是我的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>

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

你可以考虑使用mod_rewrite并在那里匹配不区分大小写。

一些链接让你入门:)
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html

答案 1 :(得分:0)

感谢ba指出我正确的方向。

我做了一些研究并找到了mod_speling模块。这不仅会使URL不区分大小写,还会检查拼写错误。

启用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>