1

私のindex.php(プロジェクトのルートディレクトリにある)には、(を使用して)URLを取得し、適切な「ビュー」を呼び出す適切な「コントローラー」を呼び出す基本的なルーティングシステムが$_SERVER[‘REQUEST_URI]あります(非常に基本的なMVCの実装)。私が持っているものはindex.php次のようになります。

$router= Router::load('Routes.php');
$uri=trim($_SERVER['REQUEST_URI'],'/'); 
require $router->direct($uri);

問題は、すべてのリクエストを に送信できないように見えることですindex.php。明らかに、あなたがに行くなら、localhost/myproject/あなたはに行きますindex.php(したがって、適切なコントローラが呼び出されます)が、私が望むのは、あなたlocalhost/myproject/contactが最初に入力したとしても、に直接あることindex.phpです。これでindex.phpルーティングを処理できます。

4

1 に答える 1

1

Apache を使用している場合は、.htaccessfile を使用してファイル内のすべてのリクエストをリダイレクトできindex.phpます。

RewriteEngine On

RewriteRule ^/index\.php$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

nginx サーバーを使用している場合は、ファイル内の次index.phpのコードを使用して、すべてのリクエストをファイルにリダイレクトでき.confます。

location / {
    try_files $uri $uri/ /index.php;
}

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

于 2020-01-28T07:48:33.737 に答える