0

すべてを にリダイレクトしたいと思いますa.php。そしてbabab.php

私は次のことをしました:

.htaccess :

RewriteEngine on

RewriteCond %{REQUEST_URI} !a.php
RewriteCond %{REQUEST_URI} !baba
RewriteRule .* a.php

RewriteRule baba b.php

a.php : <?php echo 'a.php'; ?>
b.php :<?php echo 'b.php'; ?>

しかし、baba も a.php にリダイレクトします。

そこで、htaccess の 4 行目を次のように変更しました。RewriteCond %{REQUEST_URI} ^!baba

そして今、ババはb.phpにリダイレクトしますが、それ以外はすべてNot foundエラーになります。

どうすればいいですか?

4

2 に答える 2

1

書き換えエンジンは、エンジンに入る URI が同じになるまでループします。が になる理由babaa.php、最初に に書き換えられb.php、次にエンジンがループするときにb.phpに書き換えられるためa.phpです。これを修正するには、最初のルールに条件を追加します。

RewriteEngine on

RewriteCond %{REQUEST_URI} !a.php
RewriteCond %{REQUEST_URI} !b.php
RewriteCond %{REQUEST_URI} !baba
RewriteRule .* a.php

RewriteRule baba b.php

だからb.php書き換えられないa.php

于 2012-09-09T19:07:28.120 に答える
1

さまざまなタイプのリンクを処理するためのルールを分けることができます。

各ブロックには、必要な数のRewriteCondディレクティブを配置できますが、各ブロックはディレクティブで閉じる必要がありますRewriteRule。RewriteCond はいつ書き換えるかを伝えるだけなので、書き換え自体は RewriteRule で行われます。

そして、最初のブロックでは、それがそうであることと!baba!b.php

于 2012-09-09T19:11:34.553 に答える