重写规则不符合预期

时间:2010-11-02 05:40:39

标签: php apache mod-rewrite

我正在尝试使用PHP mod_rewrite来改变一些URL。

作为测试,在我的.htaccess中我有以下内容:

RewriteEngine on
RewriteRule ^(.*[^/])$ index.php?test=$1
#RewriteRule ^([^/]+)/$ index.php?test=$1

在我的index.php文件中,我只是

<?php print_r($_GET) ?>

我想要发生的是,当mysite.com/test或mysite.com/test/位于浏览器地址栏中时,PHP $ _GET ['test']变量的值为'test'

注释行与mysite.com/test/配合使用,但似乎对mysite.com/test

无效

第二行(未注释的)在查看mysite.com/test时对$ _GET ['test']产生'index.php'值,并且对mysite.com/test/没有任何作用/ p>

我在这里有什么东西可以让我得到理想的结果吗?

由于

1 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/?$ index.php?test=$1

*?量词的注释,声明*ungreedy

http://www.troubleshooters.com/codecorn/littperl/perlreg.htm#Greedy