0

htaccess ファイルにいくつかの書き換えルールがあります。まだ途中なので、わからないところがあります。基本的に、すべてのページ (/register ページを除く) を次のように書き換えたい: http://www.example.com/about -> http://www.example.com?page=about

それを正しくするために、私はこのルールを書きました:

RewriteRule ^([a-z-_1-9]+)+/?$ ./?page=$1&%{QUERY_STRING} [L]

次に、このルールを上書きすると考えて、上記のルールの下にこのルールを書きましたが、そうではありません...

RewriteRule ^register/?$ ./?page=login&option=register

したがって、/register に移動すると 404 が返されます。ただし、最初のルールをコメントアウトすると、登録ページが機能します。下に新しいルールを書くことが優先されるCSSのように機能すると思っていました。どうすればこれを正しく行うことができ、以前に書かれた書き換えルールをどのようにオーバーライドしますか?

ありがとう!

4

1 に答える 1

2

.htaccess は CSS ではありません - 特に mod_rewrite の指示/ルールに関しては。

ルールは上から順に実行されます。したがって -より具体的なルールを一番上に置き、より一般的なルールを一番下に置きます

あなたの場合:

RewriteRule ^register/?$ ./?page=login&option=register [L]
RewriteRule ^([a-z-_1-9]+)+/?$ ./?page=$1&%{QUERY_STRING} [L]
于 2012-06-11T10:54:35.857 に答える