我使用Passenger将RoR应用部署到我的域上的子URI。我面临的问题是子URI似乎区分大小写。导航到http://mydomain.com/RailsApp可以解决问题。但是,如果我转到http://mydomain.com/railsapp,http://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>
非常感谢任何帮助。谢谢!
答案 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>