0

我有一个需要博客的 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]  

但无济于事。我不能使用反向代理,因为我希望在 Rails 应用程序和 wordpress 安装之间有 SSO(和共享导航栏等,并且真的不希望 wordpress 和我的应用程序成为 heroku 上的“单独”应用程序)。有没有办法做到这一点

4

2 回答 2

1

我会看看wordpress-heroku

就子 URI 而言,当没有必要时,您会开始让事情变得更复杂。如果您愿意,您可以运行两个 Heroku 应用程序,但不要使用文件夹路径,而是使用子域,以便您的主应用程序在 www.example.com 上运行,而您的博客在 blog.example.com 上运行。子域的使用在这样的用途中受到极大的尊重,并使事情变得更容易。

于 2013-04-04T23:25:50.793 回答
0

您是否能够访问服务器的虚拟主机文件?如果是这样,那么在服务器中添加以下内容可能是您的答案:

<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/

于 2013-04-19T14:58:16.953 回答