我想将所有内容重定向到a.php
。并baba
到b.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'; ?>
但巴巴也重定向到a.php。
所以我将htaccess中的第4行修改为:RewriteCond %{REQUEST_URI} ^!baba
现在baba重定向到b.php,但其他一切都出现Not found
错误。
我该怎么做?
答案 0 :(得分:1)
重写引擎循环,直到进入引擎的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
答案 1 :(得分:1)
您可以分开处理不同类型链接的规则。
在每个块中,您可以根据需要添加尽可能多的RewriteCond
指令,但每个块应该由RewriteRule
指令关闭。因为RewriteCond只告诉重写时间,但重写本身是在RewriteRule中完成的。
在第一个区块中,您应检查它是!baba
和!b.php