.htaccess 重定向到同一url的查询字符串

.htaccess 重定向到同一url的查询字符串,.htaccess,redirect,query-string,.htaccess,Redirect,Query String,我尝试用查询字符串重定向url列表,但是 规则不起作用: 重定向301/tg.php?uid=www567461d4d44a53.12485104http://example.com/ 重定向301/test/?第页\u id=45http://example.com/ 重定向301/?p=17518http://example.com/ Redirect 301/?page\u id=5960http://example.com/请阅读您使用的工具的文档。Apache的mod_别名明确指出,如

我尝试用查询字符串重定向url列表,但是 规则不起作用:
重定向301/tg.php?uid=www567461d4d44a53.12485104http://example.com/
重定向301/test/?第页\u id=45http://example.com/

重定向301/?p=17518http://example.com/


Redirect 301/?page\u id=5960http://example.com/

请阅读您使用的工具的文档。Apache的mod_别名明确指出,如果为了重定向而需要检查查询字符串,而不是别名模块,则应该使用重写模块。这意味着您应该使用
重写规则
,而不是
重定向
规则:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^uid=www567461d4d44a53.12485104$
RewriteRule ^/?tg\.php$ http://example.com/ [R=301]

RewriteCond %{QUERY_STRING} ^page_id=45$
RewriteRule ^/?test/?$ http://example.com/ [R=301]

RewriteCond %{QUERY_STRING} ^p=17518$
RewriteRule ^/?$ http://example.com/ [R=301]

RewriteCond %{QUERY_STRING} ^page_id=5960$
RewriteRule ^/?$ http://example.com/ [R=301]

还有一个一般性的注释:您应该总是更喜欢将这些规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为的原因,难以调试,它们确实降低了http服务器的速度,通常是免费的,而且它们可以打开安全噩梦的通道。它们仅在您无法访问真正的http服务器主机配置的情况下提供(请阅读:真正便宜的服务提供商)