0

私はこの書き換えルールを持っています:

RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ [NC]
RewriteRule ^.*$ - [R=404,L]

RewriteRule ^(home|contact|about|submit|search)/?$ /index.php?page=$1 [L]
RewriteRule ^([a-z]+)/([a-z0-9-]+)/?$ /index.php?page=home&cat=$1&slug=$2 [L]
RewriteRule ^([a-z]+)/?$ /index.php?page=home&cat=$1 [L]

私が欲しいのは:

  • ユーザーが最後の3つの条件に一致しないものを入力した場合、404エラーを表示したいと思います。現在、ホームページを読み込んでいます。だから私は$_GET['page']そこにチェックインしています。PHPをチェックインしたくありません。
  • 私の書き換えルールや追加を改善するために何かありますか?

助けてください

4

3 に答える 3

0

ErrorDocument聖霊降臨祭の場所のページを使用してみてください

ErrorDocument 404 /erreur_404.html
于 2012-08-08T07:16:40.433 に答える
0

すべてが最終的にindex.php (フロントエンド コントローラー パターン) にルーティングされるため、 the を削除してmod_rewrite以下を使用することをお勧めします。

FallbackResource /index.php

次に、 index.phpの URL を解析し、それに応じてルーティングを処理します。

これには多少の書き直しが必要ですが、長期的にはより柔軟になります。

FallbackResourceおよびPHP のフロント コントローラーについて詳しくは、こちらをご覧ください。

于 2012-08-08T05:03:15.930 に答える
0

mod rewrite を使用して Web ページ index.php に引数を追加し、それらを php ページで処理して、エラー ページを返す可能性があります (cakePHP のように)。1 つのルールのみを保持します。

 RewriteRule ^([0-9A-Za-z]+)/?$ /index.php?argument=$1 [L]
于 2012-08-08T07:11:35.237 に答える