具有条件的htaccess重定向规则

时间:2012-05-04 09:46:17

标签: php html .htaccess

我在htaccess中使用了以下代码

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . index.php
 </IfModule>

重定向,就好像网址是test.com/test - &gt;它重定向到测试文件夹(这里的文件夹名为'test') 如果网址是test.com/testpage - &gt;它重定向到index.php(即没有一个文件夹在testpage名称中)

但我想将其重定向为

如果网址是test.com - &gt;它将重定向到index.php

如果网址是test.com/test - >它将重定向到相应的文件夹(如果文件夹名称存在)

如果网址是test.com/testpage,则会重定向到page.php

我还想将一些特定名称重定向到test.php(test.com/test2或test.com/test3)

请帮助

2 个答案:

答案 0 :(得分:0)

这是通过创建路由器类来完成的。

你所拥有的代码将所有网址重定向到index.php,使索引能够读取网址,并根据该网址对其进行处理。

请参阅http://www.phpaddiction.com/tags/axial/url-routing-with-php-part-one/

用于路由器教程

答案 1 :(得分:0)

您可以单独为特定页面/网址编写重写条件,或者只是添加某些后缀,例如页面传递“[category] ​​/ testpage”或任何内容,并描述重写条件以便可以重定向。< / p>

RewriteRule ^ category /(.*)$ page.php [R = 301]