1

这似乎是一项非常简单的任务,但是在阅读了太多教程后,我几个小时都无法完成。请帮忙..

我需要重定向

http://example.com/myfolder/myfile.php?type=1&add=20

到这个地址:

http://example.com/newfolder/mytasks.xml

我试过太多了。我最后一次试用是这样的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/myfolder/myfile.php?type=1&add=20$ /newfolder/mytasks.xml [R=301,NC,L]
</IfModule>
4

2 回答 2

1

请改用此规则:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+myfolder/myfile\.php\?type=1&add=20 [NC]
RewriteRule ^ /newfolder/mytasks.xml [R=301,L]

记住:

  • RewriteRule 匹配不以斜杠开头/
  • RewriteRule 不匹配查询字符串,它只匹配请求 URI
于 2013-03-22T20:49:24.943 回答
1

如果您还希望type=1&add=20删除查询,这样的事情应该可以工作:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING}  type=1&add=20                 [NC]
RewriteCond %{REQUEST_URI}   !/newfolder/                  [NC]
RewriteRule ^myfolder/myfile\.php  /newfolder/mytasks.xml? [R=301,NC,L]

重定向:

http://example.com/myfolder/myfile.php?type=1&add=20

http://example.com/newfolder/mytasks.xml

对于静默映射,将 [R=301,NC,L] 替换为 [NC,L]

于 2013-03-23T10:16:33.880 回答