Php .htaccess是否在url包含时不重定向?或=

Php .htaccess是否在url包含时不重定向?或=,php,.htaccess,mod-rewrite,redirect,Php,.htaccess,Mod Rewrite,Redirect,有谁能告诉我,如果传入的URL包含某些文本,并且有实际问题,如何重定向 例如: RedirectMatch 301/files/9453041/batch BiDA(此工程) 重定向匹配301/?加载=/files/9453041/batch BiDA(这不起作用) 只有上述两个重定向中的第一个有效,不确定原因,但第二个包含/?load=doesntredirect。有人能告诉我第二行需要什么变化才能正常工作吗 或者也许我在想,如果它不能工作,如果它可以将每个具有“mysite.com/?loa

有谁能告诉我,如果传入的URL包含某些文本,并且有实际问题,如何重定向

例如:

RedirectMatch 301/files/9453041/batch BiDA(此工程)

重定向匹配301/?加载=/files/9453041/batch BiDA(这不起作用)

只有上述两个重定向中的第一个有效,不确定原因,但第二个包含/?load=doesntredirect。有人能告诉我第二行需要什么变化才能正常工作吗

或者也许我在想,如果它不能工作,如果它可以将每个具有“mysite.com/?load=/whater/whater”的传入url重定向到“mysite.com/whater/whater”的话


非常感谢您的帮助…

为了匹配查询字符串(在
之后的所有内容),您需要使用重写条件匹配
%{query\u STRING}
变量:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^load=/files/9453041/batch-BiDA
RewriteRule ^/?$ http://secondsite.com/ [L,R=301]

您也可以使用
[或]

RewriteEngine On
RewriteCond %{QUERY_STRING} ^load=/files/9453041/batch-BiDA [OR]
RewriteCond %{QUERY_STRING} ^load=/files/35356441/batch-546A 
RewriteRule ^/?$ http://secondsite.com/ [L,R=301]
等等

但是如果您不关心
/files/
部分后面的内容,只需匹配NUMEBR即可:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^load=/files/[0-9]+/batch-[0-9A-Za-z]+ 
RewriteRule ^/?$ http://secondsite.com/ [L,R=301]

逃走?and=带反斜杠:\?和\=所以看起来像是/\?加载\=/files…@Deryck RedirectMatch与查询字符串不匹配。您需要的是mod rewrite,而不是mod alias。@OhgoodWhy true story^感谢您的帮助:)我在这方面取得了部分成功,但在按照建议使用代码时需要克服一个问题。。。我遇到的问题是,我有许多链接需要重定向,但当我添加到上述代码中的任何URL包含一个开括号时,代码会导致服务器不可用错误(“我有许多链接包含字符+”(etc和开括号)这些url链接不在我的控制范围内,所以我的问题是如何继续…处理此链接以重定向它?^load=/storage/6780109/seven_7_(Active+_v2.0.6_重新加载uu-DAN_uuu%5bteam我可以使用任何通配符或部分匹配来解决这些问题角色吗?再次感谢您的帮助,我用它来解决我的问题!:实际上,我想我已经解决了这个问题,用一个句号替换了特殊字符。似乎正在工作,唯一的问题是我必须这样写此函数或它在RewriteCond%{QUERY_STRING}^load=/files/9453041/batch BiDA RewriteRule^/?$[L,R=301]RewriteCond%{QUERY_STRING}^load=/files/35356441/batch-546A RewriteRule^/?$[L,R=301]我必须在每个条件都有修复后执行规则?非常感谢您的帮助…@user2872083如果您在
/files/
位后有特定的数字,那么您别无选择,只能枚举它们,但您至少可以使用
[OR]将它们链接在一起
。否则,如果您不在乎数字是什么,您可以与任何数字进行匹配,请参见上面的编辑