2

我正在尝试为我的网站匹配一堆重定向,基本上移动到服务器上的不同文件夹。我需要让http://www.site.com/index.php?page=anypage转到http://www.site.com/newfolder/index.php?page=anypage。事情是http://www.site.com/index.phphttp://www.site.com/index.php?page=home应该保持不变。我怎样才能做到这一点?

我在.htaccess文件中尝试了以下操作,但我害怕犯错误。我也真的不知道如何测试这个。

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^/index.php?page=(.*)$ http://www.site.com/newfolder/index.php?page=$1 [R=302,NC]
RewriteRule ^/index.php?page=home http://www.site.com/index.php?page=home [R=302,NC,L]

现在我认为这是暂时的,所以我应该知道如何扭转它!下周,链接将不得不再次重定向到根服务器。另外,我应该怎么做才能重新建立正常的重定向?

4

1 回答 1

3

如果我正确地遵循了你的场景,你想要这样的东西:

RewriteEngine On

RewriteCond %{QUERY_STRING} !=""
RewriteCond %{QUERY_STRING} !page=home
RewriteRule ^index.php /newfolder/index.php [R,L]

就测试而言,我更喜欢在本地测试服务器上尝试规则。如果您可以完全控制服务器(本地情况就是这样),那么有一些mod_rewrite指令可以帮助您记录正在发生的事情,这对调试很有帮助。模块文档有更多关于此的信息。

编辑:当你想切换回来,修改RewriteRule上面这样:

RewriteRule ^newfolder/index\.php /index.php [R,L]
于 2010-08-10T03:01:51.917 回答