apache重定向正在向新url添加查询字符串

apache重定向正在向新url添加查询字符串,apache,.htaccess,mod-rewrite,query-string,Apache,.htaccess,Mod Rewrite,Query String,apache mod rewrite在我身上表现得很奇怪: 我正在尝试重定向此: http://www.website.com/page.php?id=34 为此: http://www.website.com/ 在htaccess中使用此选项: RewriteCond %{QUERY_STRING} ^id=([0-9]*)$ RewriteRule ^page\.php$ "http://www.website.com" [R=301,L] 它工作正常,但也会将查询字符串添加到重定向的ur

apache mod rewrite在我身上表现得很奇怪: 我正在尝试重定向此:
http://www.website.com/page.php?id=34
为此:
http://www.website.com/

在htaccess中使用此选项:

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^page\.php$ "http://www.website.com" [R=301,L]
它工作正常,但也会将查询字符串添加到重定向的url:

http://www.website.com/?id=34


如何从重定向的url中删除查询字符串?

我不确定它是否有效,但请尝试:

RewriteRule ^page\.php "http://www.website.com" [R=301,L]

我不确定它是否有效,但请尝试:

RewriteRule ^page\.php "http://www.website.com" [R=301,L]

默认情况下,mod_rewrite不会更改查询字符串,它将保持它们不变,并将它们传递给任何新URI。要删除它们,您需要在新URL的末尾加一个问号。你也不需要在它周围加引号。这应该起作用:

RewriteRule ^page\.php$ http://www.website.com? [R=301,L]

默认情况下,mod_rewrite不会更改查询字符串,它将保持它们不变,并将它们传递给任何新URI。要删除它们,您需要在新URL的末尾加一个问号。你也不需要在它周围加引号。这应该起作用:

RewriteRule ^page\.php$ http://www.website.com? [R=301,L]

谢谢,但它仍然会将查询字符串添加到新url谢谢,但它仍然会将查询字符串添加到新url