.htaccess 还有一个问题

.htaccess 还有一个问题,.htaccess,get,wamp,.htaccess,Get,Wamp,我在WAMP服务器上有一个.htaccess文件。htaccess重写可以很好地工作…对于一些简单的url重写,但是我不能让它在一个简单的测试中工作 我的.htaccess Options +FollowSymLinks RewriteEngine on RewriteRule ^Homepage/$ index.php RewriteRule ^Test/(.*)/$ test.php?a=$1 在我的test.php上,我正在转储$\u GET 我的主页工作正常,即重定向正常。但是我的测试

我在WAMP服务器上有一个.htaccess文件。htaccess重写可以很好地工作…对于一些简单的url重写,但是我不能让它在一个简单的测试中工作

我的.htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^Homepage/$ index.php
RewriteRule ^Test/(.*)/$ test.php?a=$1
在我的test.php上,我正在转储$\u GET

我的主页工作正常,即重定向正常。但是我的测试页面只是部分工作,因为它转到Test.php,但是没有从我的$\u GET dump中转储任何内容—它只是一个空数组

理想情况下,我需要对多个文件夹执行此操作,例如

RewriteRule ^Test/(.*)/(.*)/(.*)/$ test.php?a=$1&b=$2&c=$3
…但我甚至不能让我的简单测试工作

顺便说一句,同样的.htaccess在我的Linux环境(开发服务器)中工作得非常好。我现在需要把它移到一个生产Windows框中,它根本不起作用

如果有帮助,此.htaccess文件位于子文件夹中,例如C:\wamp\www\mywebsite\.htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^Homepage/$ index.php
RewriteRule ^Test/(.*)/$ test.php?a=$1
我做错了什么?有什么想法吗?提前谢谢

更新:

打开“重写日志”(将真实网站名替换为mywebsite)并返回以下内容:

217.42.222.22 - - [31/Mar/2011:23:08:16 +0100] [www.mywebsite.com/sid#65f3f0][rid#1a13a68/subreq] (1) [perdir C:/wamp/www/mywebsite.com/] pass through C:/wamp/www/mywebsite.com/test.php
217.42.222.22 - - [31/Mar/2011:23:08:16 +0100] [www.mywebsite.com/sid#65f3f0][rid#1a2ea88/initial] (1) [perdir C:/wamp/www/mywebsite.com/] pass through C:/wamp/www/mywebsite.com/test.php
217.42.222.22 - - [31/Mar/2011:23:08:16 +0100] [www.mywebsite.com/sid#65f3f0][rid#1a24af0/subreq] (1) [perdir C:/wamp/www/mywebsite.com/] pass through C:/wamp/www/mywebsite.com/ABC
我还是不明白;-)

两个建议:

  • 发布用于测试页面的url
  • 打开重写日志,看看上面写了什么。以后一定要再关掉它
    您的重写规则如下所示:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^Homepage/$ /index.php [R=301,L]
    RewriteRule ^Test/(.*)/$ /test.php?a=$1 [R=301,L]
    

    重写规则的目标应该以/

    @CWA开头:我在上面的规则中添加了
    [R=301,L]
    ,做了一个小小的修改。我也在Windows XP上安装了
    xampp
    ,并在那里测试了上述规则,它们都运行良好。当我输入此URL
    http://localhost/Test/foo/
    它被重定向到
    http://localhost/test.php?a=foo