我有一个需要博客的rails应用程序。我看过各种rails cms和博客引擎,没有一个能满足我的需求。我想在一个子uri www.example.com/blog上添加Wordpress。我的申请托管在Heroku上。我能够在heroku上独立安装wordpress作为一个单独的应用程序,我试过用。htaccess文件将wordpress添加到公共文件夹,如下所示:
RewriteEngine On
RewriteRule ^([^'.]+[^/])$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteBase /
RewriteCond RewriteCond %{REQUEST_URI} ^/blog.*$
RewriteCond %{DOCUMENT_ROOT}/-%2 -d
RewriteRule ^(.*)$ -%2/$1 [QSA,L]
,但无济于事。我不能使用反向代理,因为我想有SSO(和共享导航栏等,真的不希望wordpress和我的应用程序是"独立"的heroku应用程序)之间的Rails应用程序和wordpress安装。有没有办法做到这一点
我想看看wordpress-heroku
就子URI而言,在不必要的情况下,您开始使事情变得更加复杂。如果你愿意,你可以运行两个Heroku应用程序,但不是使用文件夹路径,而是使用子域名,这样你的主应用程序运行在www.example.com上,你的博客运行在blog.example.com上。在这样的使用中,子域的使用得到了极大的尊重,并且使事情变得容易得多。
您是否能够访问服务器的虚拟主机文件?如果是这样,那么在服务器中添加以下内容可能是您的答案:
<VirtualHost ...>
ServerName ...
DocumentRoot ...
<Location /blog>
PassengerEnabled off
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
</Location>
</VirtualHost>
然而,我想这也取决于rails应用程序是如何部署的,以及公共文件夹是否在部署时更新。您可能需要对公用文件夹进行符号链接,这样就不会在每次部署站点时更新该文件夹。
我不知道这是否适用于从未使用过他们服务的Heroku,但希望它能有所帮助。
来源:http://ziyedbd.wordpress.com/2012/05/11/deploying-wordpress-blog-inside-ruby-on-rails-application/
符号链接信息:http://linux.byexamples.com/archives/19/how-to-create-symlink/