web-dev-qa-db-ja.com

ルートはデバッグリストにありますが、Symfony 4では404を返します

さて、最新バージョンのSymfony 4をインストールしました。インストール後にブラウザを実行すると、ニースのウェルカムグリーティングが表示されます。いいね!

次に、make:controllerを使用して新しいコントローラーを作成しました。このコントローラーにClientという名前を付け、他のデフォルトコントローラーと同じ注釈を使用しています。次のようにルーティングを構成しました。

/**
 * @Route("/client", name="client")
 */
public function index()
{
    // replace this line with your own code!
    return $this->render('@Maker/demoPage.html.twig', [ 'path' => str_replace($this->getParameter('kernel.project_dir').'/', '', __FILE__) ]);
}

ブラウザを更新しましたが、エラーはありませんでした。

次に、ブラウザにパスを手動で入力して、実際に機能するかどうかを確認しました。

localhost:8000/client

問題。 URLは標準のApache 404を返しました

Not Found
The requested URL /client was not found on this server.

Apache/2.4.18 (Ubuntu) Server at new.staff-fdr.dev Port 80

ただし、デバッグルートでは次のように表示されます。

-------------------------- -------- -------- ------ ------------------
  Name                       Method   Scheme   Host   Path   

 -------------------------- -------- -------- ------ -----------------
  client                     ANY      ANY      ANY    /client  
  index                      ANY      ANY      ANY    /       
  _twig_error_test           ANY      ANY      ANY    /_error/{code}.
12
Riza

.htaccessファイルがありません。

composer config extra.symfony.allow-contrib true

composer req symfony/Apache-pack
27
malcolm

私もこの問題を抱えていましたが、もしこれがあなたのために機能しない場合、ここにいくつかの他のアイデアがあります。 1つは、ここに記載されているとおりにWebサーバーを構成することです。 mod_phpで最適化されたApacheは私のために働いた:

https://symfony.com/doc/master/setup/web_server_configuration.html

次に、Webサーバーでmodの書き換えを有効にしていませんでした。これは最終的に私を立ち上げた修正でした。実行:

Sudo a2enmodの書き換え

それから

SudoサービスのApache2の再起動

それでうまくいくはずです。

2
Johnny Wales

私の場合、symfony flexに移行するときに、vhost設定をWebからパブリックフォルダーに変更するのを忘れていました。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/myproject/web/"
    ServerName dev.myproject.com
    ServerAlias dev.myproject.com
    <Directory "C:/xampp/htdocs/myproject/web/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/myproject/public/"
    ServerName dev.myproject.com
    ServerAlias dev.myproject.com
    <Directory "C:/xampp/htdocs/myproject/public/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
        Order allow,deny
        Allow from all
     </Directory>
</VirtualHost>
0
Tortus