Symfony サイトを GoDaddy 本番サーバーにインストールしました。URL www.amcolan.info/Symphony/web/app.php/index を使用すると正常に動作します。www.amcolan.info/indexとして機能するように設定したい。
GoDaddy コントロール パネルを介して、フォルダー amcolan/Symfony/web を指すようにドメインを変更しました。以前は、私のサイトの作業バージョンを含む /amcolan を指していました。セットアップが完了したら、次の .htaccess ファイルをインストールしました。
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^/app_dev.php - [L]
RewriteRule ^/app.php - [L]
# Fix the bundles folder
RewriteRule ^bundles/(.*)$ bundles/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
# Change below before deploying to production
RewriteRule ^(.*)$ app.php [QSA,L]
#RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
このサイトの別の関連する質問からコードを取得し、目的に合わせて変更しました。オリジナルは Symfony ディレクトリに存在することを意図していました。次に、本番キャッシュをクリアして、ページにアクセスしようとしました。内部サーバー エラーが発生しました。コードにエラーはありますか? すべての実装の 99% がこれを行う必要があると私が想像しているので、これは Sensio によって十分に文書化されていると思うでしょう。今、私はただ苦くなっています。
提案どおり、Symfony に付属の次のコードを試しました。
<IfModule mod_rewrite.c>
RewriteEngine On
<IfModule mod_vhost_alias.c>
RewriteBase /
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
私も試しました:
<IfModule mod_rewrite.c>
RewriteEngine On
#<IfModule mod_vhost_alias.c>
#RewriteBase /
#</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
両方で以前と同じエラーが発生しました。ディレクトリにアクセスしていることを確認するために、index.php ファイルを追加し、アクセスできるようにしました。
更新 2
goDaddy 固有の問題についてさらに調べたところ、goDaddy フォーラムで、RewriteEngine が既に有効になっているという投稿を見つけました。そのコードを影響なく削除しました。次に、これを試すことにしました:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://www.amcolan.info/app.php/index [QSA,L]
私は正しくないと思いますが、それはうまくいきました。app.php/ の後にインデックスなしで最初に試しました。これで symfony にはまりましたが、get エラーが発生しました。null引数が原因のようだったので、インデックスを追加しました。したがって、誰かが www.amcolan.info の後に何を入力しても、インデックスに移動します。Symfony ページに移動したら、サイト内の他のページに移動できます。だから今、私は3つの新しい質問があります:
.htaccess ファイルを読み取るときに、Web サーバーがどこを指しているのか分かりますか? /web ディレクトリにファイルがあると考えるでしょう。フルパスの代わりに app.php を指定するだけでは機能しないため、そうではないはずです。それは私のサイトのベースになりますか?
www.amcolan.info のリダイレクトが成功すると、表示される URL は www.amcolan.info/app.php/index になります。URL に /app.php が表示されないようにしたいのですが、実際の宛先である限り、それは不可能だと思います。それは正しい仮定ですか?
ハードコードされたインデックスではなく、www.amcolan.info/somepage を www.amcolan.info/app.php/somepage に移動するにはどうすればよいですか?
アップデート 3
私は立ち往生していると思ったが、それから私は試した:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php/index [QSA,L]
これにより、完全な URL を使用する必要がなくなり、リンク先ページに app.php が表示されなくなりました。新しい問題があります: www.amcolan.info を指定するだけで、上記の get エラーが発生します。www.amcolan.info/somepage を指定すると、インデックスではなく、指定したページに移動するようになりました。もう少し掘り下げて、最後の問題を解決できるかもしれません。
更新 4
ルーティング ファイルに以下を追加して、最後の問題を修正しました。
nopage:
pattern: /
defaults: { _controller: ZetchoAmColAnBundle:Default:index }
requirements:
_method: GET
私は今、幸せなキャンピングカーだと思います。