我在WAMP服务器上有一个.htaccess文件。 .htaccess重写工作正常......对于一些简单的URL重写,但我不能让它在一个简单的测试上工作。
我的.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^Homepage/$ index.php
RewriteRule ^Test/(.*)/$ test.php?a=$1
在我的test.php上,我正在抛出$ _GET。
我的主页工作正常,即http://www.mysite.com/Homepage/重定向正常。但我的测试页面只是部分工作,因为它转到了test.php,但没有任何东西从我的$ _GET转储中被转储 - 它只是一个空数组。
理想情况下,我需要为多个文件夹执行此操作,例如
RewriteRule ^Test/(.*)/(.*)/(.*)/$ test.php?a=$1&b=$2&c=$3
...但我甚至无法让我的简单测试工作。
BTW - 同样的.htaccess在我的Linux环境(开发服务器)中运行良好。我现在需要将其移动到生产Windows框中,它根本无法正常工作。
如果它有助于此.htaccess文件位于子文件夹中,例如C:\瓦帕\ WWW \ mywebsite \ htaccess的
我做错了什么?有任何想法吗?提前谢谢。
更新:
启用重写日志(使用mywebsite替换真实网站名称)并http://www.mywebsite.com/Test/ABC/返回此信息:
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
我仍然不是明智的; - )
答案 0 :(得分:0)
两个建议:
答案 1 :(得分:0)
让你的重写规则如下:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^Homepage/$ /index.php [R=301,L]
RewriteRule ^Test/(.*)/$ /test.php?a=$1 [R=301,L]
重写规则的目标应该以/
开头