2013-06-26 84 views
0

在Windows服务器上,我们运行Helicon Ape以运行.htaccess规则并安装了PHP。我有以下的.htaccess文件行根目录:.htaccess Windows服务器上的RewriteRule问题

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^test/(.*)$ test/handle.php?path=$1 [L] 
</IfModule> 

handle.php文件写了下面的代码。

echo $_GET["path"]; 
exit; 

当我输入任何像这样的网址:http://mysite.com/test/test.ziphttp://mysite/test/FILENAME.EXT不是打印FILENAME.EXT它只是打印handle.php作为输出!怎么了?

+0

最有可能的PHP未正确设置你的网络服务器。创建一个test.php并把'<?php phpinfo(); ?>看看你得到了什么。 – anubhava

回答

1

尝试增加一个条件,以防止改写handle.php

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/test/handle.php$ 
RewriteRule ^test/(.*)$ test/handle.php?path=$1 [L] 
</IfModule> 
+0

感谢您的答案,但输出是'handle.php'呢!我真的很困惑! – revo

+0

@Bob,我认为你的RewriteCond模式中的主要斜杠应该被删除。 – CBroe

+0

我发现你更新了代码,新规则就像一个魅力! – revo