Если вы используете suburi-s, то
<documentroot>/<suburi>
предназначено для указания на общедоступный каталог вашего приложения rails
- корневой каталог вашего приложения rails должен быть на один каталог выше вашего открытого приложения rails
И то и другое решается, если у вас есть выделенный общедоступный документ для вашего домена, а затем вы делаете
ln -sf /path/to/suburi-rails-app/public <documentroot>/<suburi>
Документация действительно не очень хорошая. Таким образом, ваше решение будет:
ln -sf /srv/www/suburi/public srv/www/mydomain/public/suburi
и vhost conf:
<VirtualHost 173.230.137.212:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /srv/www/mydomain/public
ErrorLog /srv/www/error.log
RewriteEngine On
RewriteOptions Inherit
RailsEnv production
<Directory /srv/www/mydomain/public>
Options FollowSymLinks -MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
RailsBaseURI /suburi
<Directory /srv/www/mydomain/public/suburi>
Options -MultiViews
</Directory>
</VirtualHost>
вы говорите, что: и приложение rails для mydomain.com, и приложение rails для mydomain.com/suburi находятся в / srv / www /
Это немного смутило меня, я не думаю, что было бы хорошей идеей хотеть запускать приложение в домене, а другое в suburi, так как маршрутизация непременно должна быть запутана.
Скорее используйте 2 suburi-s, в этом случае сделайте
ln -sf /srv/www/suburi2/public srv/www/mydomain/public/suburi2
где / srv / www / suburi2 - это ваш второй каталог root для приложений, и добавьте:
RailsBaseURI /suburi2
<Directory /srv/www/mydomain/public/suburi2>
Options -MultiViews
</Directory>
Вы можете добавить любое количество suburis к одному и тому же vhost.
надеюсь, это помогло