我想将所有内容重定向到a.php
。以及CCD_ 2到CCD_。
我做了以下事情:
.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也重定向到了.php。
所以我将htaccess中的第4行修改为:RewriteCond %{REQUEST_URI} ^!baba
现在baba重定向到b.php,但其他所有内容都会出现Not found
错误。
我该怎么做?
重写引擎循环,直到进入引擎的URI相同。baba
变为a.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
您可以分离处理不同类型链接的规则。
在每个块中,您可以放置任意数量的RewriteCond
指令,但每个块都应该由RewriteRule
指令关闭。因为RewriteCond只告诉何时重写,但重写本身是在RewriteRule中完成的。
在您的第一个块中,您应该检查它是!baba
和!b.php