我有以下问题。我使用用php编写的重写映射来重写我的URL。
RewriteCond %{REQUEST_URI} !(\.(js|css|less|png|php|swf|flv|jpg))$
RewriteRule ^ /${redirect:$1} [L]
redirectmap看起来像
$stdin = fopen("php://stdin","r");
$uri = trim(fgets($stdin));
$result = processUri($uri);
print "$result\n";
fclose($stdin);
当我输入url example.com/foobar时,应将其重写为example.com/search.php?what=foobar
总体而言,它有效但有时......或者在我第一次重写成功后,当我输入example.com/foobar时,将其重写为example.com/foobar/index.html/index.html/index.html等
有人可以帮忙吗?
答案 0 :(得分:0)
如何只允许一次重定向的众多可能性之一是使用内部cookie。
在执行RewriteRule
之前,请
RewriteCond %{HTTP_COOKIE} !^.*htredirect=1.*$ [NC]
然后通过添加标记RewriteRule
来修改[CO=htredirect:1:%{HTTP_HOST}]
,因此设置了重定向cookie,这可以防止再次执行相同的规则。