ですから、この質問は他に20回、さまざまな方法で行われていることを私は知っていますが、すべての調査を行った後でも、これを理解できないようです。末尾にスラッシュが付いたURLを入力してから、404エラーが発生するまで、セットアップはうまく機能します。たとえば、URLmydomain.com/first
を入力してEnterキーを押すと、正常に機能します。入力しmydomain.com/first/
てEnterキーを押すと、それでも問題なく動作します。しかし、それを入力すると、mydomain.com/second
に送信されmydomain.com/first/second
、404エラーがスローされます。
これが私のhtaccessページ全体です:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_\-]+)/?$ index.php?url=$1 [NC,L]
</IfModule>
私のインデックスページ:
<?php
define('ROOT_DIR', dirname(__FILE__) . '/'); // Define the root directory for use in includes
require_once (ROOT_DIR . 'library/bootstrap.php');
$url = strtolower($_GET['url']);
include(ROOT_DIR . 'views/headerView.php');
switch($url)
{
case "first": include(ROOT_DIR . 'views/firstPageView.php');
break;
case "second": include(ROOT_DIR . 'views/secondPageView.php');
break;
default: include(ROOT_DIR . 'views/homeView.php');
}
include 'views/footerView.php';
?>
そして、デフォルトのhomeViewテンプレート:
<p>This is the home page.</p>
<p>To the first page. <a href="first">First Page</a></p>
<p>To the second page. <a href="second">Second Page</a></p>
スラッシュはオプションであり、バックリファレンスの一部ではないため、ページの読み込み後にスラッシュはURLから除外されると思いますが、上記の例では明らかにそうではありません。任意のアドバイスをいただければ幸いです。ありがとうございました