Tag: mod rewrite

Routes.rb vs rack-rewrite vs nginx / apache重写规则

我对以前的应用程序版本中的遗留URL有几十条重写规则。 我看到三个选择: 只需在路由文件中添加“匹配”行(config / routes.rb) 使用机架重写 创建Nginx / Apache重写规则(在我的例子中是Nginx) 我认为3的性能优于2,性能优于1。 我的问题: 真的吗? 如果是这样,重要的是多少? 我可能没有考虑过其他权衡吗? 除了那三个之外还有其他任何选择吗?

需要在Heroku上链接WP Blog和Rails App

我有一个客户想要将他的Rails应用程序迁移到Heroku。 但是,客户端还有一个与他的域相关联的博客,该博客在WordPress上运行。 目前,WordPress博客与Rails应用程序一起快乐地运行,但是一旦我们迁移到Heroku,这显然是不可能的。 该应用的url类似于http://mydomain.com ,该博客的url类似于http:// mydomain / blog 。 我意识到最好的长期解决方案是以像Toto或Jekyll这样的Rails格式重做博客。 但是从短期来看,继续托管WP博客(或者某个地方)但使用Heroku来运行应用程序的最佳方式是什么? 客户端不希望博客位于子域,而是因为SEO原因而留在mydomain / blog,并且因为博客有流量。 我有两个想法: 在旧(非Heroku)服务器上使用rack_rewrite或refraction(或只是常规的旧301和Apache mod_rewrite)将主URL从旧站点重定向到Heroku。 在这种情况下,我可以让Wordpress博客快乐地运行。 我认为?? 如果我这样做,是否有理由选择其中一个选项(rack_rewrite,refraction或mod_rewrite)而不是其他选项? 切换DNS信息以指向Heroku站点,然后使用301重定向从博客到旧站点。 但是接下来我必须在子域上获取旧的(非Heroku)站点并使用某种重写规则,因此看起来它不是子域。 这些方法中的任何一种都是优选的,还是有另一种方法可以让我更容易丢失?

适用于Apache的rails app的OpenID

我正在尝试通过Google帐户集成简单的OpenID身份validation。 我正在使用omniauth gem并在我的本地开发系统上(Win7,ruby 1.8.7-p302,rails 2.3.8,omniauth 0.1.5)一切正常。 当我将它部署到我的主机(HostGator)时,问题就显示出来了。 应用程序(mongrel)从端口12002开始,通过HostGator的cPanel,它被配置为从一个子域重写: RewriteCond %{HTTP_HOST} ^subdomain.mycompany.com$ [OR] RewriteCond %{HTTP_HOST} ^www.subdomain.mycompany.com$ RewriteRule ^(.*)$ “http\:\/\/127\.0\.0\.1\:12002\/$1” [P,L] 当浏览器进入/ auth / open_id时,它会被重定向到Google进行授权,但它的return_to地址是subdomain.mycompany.com:12002,这当然是不正确的,因为Apache不会在12002上监听。我已经设法修改了OmniAuth :: Strategies :: OpenID和Rack :: OpenID所以他们在没有端口BUT的情况下组装地址现在在用户访问确认后的最后阶段如果落入: Routing Error No route matches “/403.shtml” with {:method=>:get} 我想问题是我的网站的地址被编码(某种哈希)在其他授权请求参数,以避免