0

私の Ruby on Rails プロジェクトは justhost サーバーにあります。そこにルビープロジェクトを作成しているとき、これはデフォルトでフォルダー rails_apps に作成されています。
私のプロジェクトでは、シンボリックリンクを作成しました。
ln -s ~/rails_apps/webworth/public ~/public_html/webworth
および ln -s ~/rails_apps/webworth ~/public_html/webworth_app [ftp クライアントでファイルを閲覧するためだけのこのシンボリック リンクの目的]

~/rails_apps/webworth/public ディレクトリに .htaccess ファイルを作成しました。以下は.htaccessコードです

Options -MultiViews  
PassengerResolveSymlinksInDocumentRoot on  
RailsEnv development  
RailsBaseURI /webworth  
SetEnv GEM_HOME /home5/worthgur/ruby/gems  

~/public_html 内の 1 つの .htaccess ファイル。以下はコードです:

# Use PHP5 Single php.ini as default  
AddHandler application/x-httpd-php5s .php  

RewriteEngine on  
Options +SymLinksIfOwnerMatch  
RewriteBase /  

RewriteCond %{HTTP_HOST} ^(www\.)?webworth.com [NC]  
RewriteCond %{REQUEST_URI} !webworth/ [NC]  
RewriteRule ^(.*)$ "webworth\/$1" [L]

これらの .htaccess ファイルの構造では、1 つの問題を除いてすべてが正常に機能しています。プロジェクト内のすべての URL に余分なテキストが追加されています。つまり、routes.rb ファイルによって生成されたすべてのリンクの「webworth」です。そして、この余分なテキスト「webworth」をすべての URL から削除したいと考えています。

Now urls are generating for example in this manner.
http://webworth.com/webworth/tags/smartphones
while it should be http://webworth.com/tags/smartphones.

この余分なテキスト、つまり「webworth」は、サイトのドキュメント ルートにないため、アクセスする必要があるフォルダーに対して以前に追加されました。この余分なテキストのために、routes.rb ファイルによって生成されたすべての URL に余分なテキストが追加されます。 ~/rails_apps/webworth/public/.htaccess ファイル [理由: RailsBaseURI /webworth]

~/rails_apps/webworth/public/.htaccess ファイルで RailsBaseURI /webworthRailsBaseURI /に変更することで、これを修正できると思います。
~/public_html/.htaccess ファイルに適切なコマンドを記述できなかったため、トラフィックを public_html からサイトのシンボリック リンク (webworth) にリダイレクトできませんでした。多くのオプションを使用しましたが、それがどのように機能するかわかりませんでした。~/public_html/.htaccess ファイルを適切に記述して、トラフィックを public_html フォルダーから私のシンボリックリンク (webworth) にリダイレクトするのを手伝ってください。
Justhost は次のリンクを提案しました: How to host the Primary Domain from a subfolder。しかし、それでも問題を理解できませんでした。ありがとう

4

1 に答える 1

0

justhost で同じ問題が発生し、リダイレクトを追加せずに解決しました。Rails アプリのパブリック フォルダーをメイン サイトのパブリック フォルダーに設定しました。

  • 念のため、元の「public_html」の名前を「public_html_backup」に変更しました。

  • シンボリックリンクを追加ln -s ~/myRailsApp/public ~/public_html

  • htaccess で に変更RailsBaseURI /myRailsAppしたRailsBaseURI /結果、次のようになりました。

<IfModule mod_passenger.c> Options -MultiViews PassengerResolveSymlinksInDocumentRoot on RailsEnv production RackBaseURI / SetEnv GEM_HOME /yourUserPath.../ruby/gems </IfModule>

これがお役に立てば幸いです。乾杯

于 2014-04-13T10:51:34.713 に答える