0

このサイトは index.php のみで構成され、コンテンツは JavaScript によって変更されます。実際のナビゲーション リンクではなく、ランダムなアドレスを入力すると、ヘッダーだけが表示され、コンテンツもリダイレクトも表示されません。.htaccessErrorDocument 404 /404.htmlに含まれていても役に立ちません。

これを解決する方法はありますか?

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [NE,L]

  ErrorDocument 404 /404.html

</IfModule>
4

1 に答える 1

3

Javascript では、実際のページをロードする必要があります... 404 が表示される場合、リダイレクトを処理するための JavaScript は使用できません。

あなたのウェブホストはカスタム .htaccess ファイルをサポートしていますか? それは別の名前にすることになっていますか?また、.htaccess が Web ページのルート ディレクトリにあることを確認して、すべてのサブ フォルダーが含まれるようにします。

.htaccess を JavaScript と組み合わせたい場合は、次のようにしてください。

ErrorDocument 404 "<script>//do something</script>"

編集

.htaccess のこの行のため

RewriteRule ^(.*)$ index.php?q=$1 [NE,L]

実際に 404 エラーが発生することはありません。これは、「www.example.com/page1」などの URL が「www.example.com/index.php?q=page1」にリダイレクトされるためです。

ページが読み込まれないというエラーに対処するには、「q」変数を検出する PHP スクリプトで次の手順を実行します。

if($_REQUEST['q'] == ""){
    //Show the home page
}else if($_REQUEST['q'] == "portfolio"){
    //Show portfolio page
}else{
    //No page for provided arguments, show an error or redirect to error page.
}
于 2012-11-12T08:32:14.570 に答える