Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess基于查询字符串的重写规则_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache htaccess基于查询字符串的重写规则

Apache htaccess基于查询字符串的重写规则,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,服务器软件中最近的更改导致基于标记的搜索返回内部服务器错误。我想通过使用基于查询字符串包含tag=reference的条件的重写规则来纠正这个问题。重写规则将获取包含标记=字符串的任何url,并将其重写以删除子目录。以下是一些例子: 传入URL: 结果URL: 我猜我的重写条件应该是: RewriteCond %{QUERY_STRING} tag=* $ 重写规则应该是这样的: RewriteRule ^subdirectory / [R=301,L] 这在htaccess测试工具中

服务器软件中最近的更改导致基于标记的搜索返回内部服务器错误。我想通过使用基于查询字符串包含tag=reference的条件的重写规则来纠正这个问题。重写规则将获取包含
标记=
字符串的任何url,并将其重写以删除子目录。以下是一些例子:

传入URL:

结果URL:

我猜我的重写条件应该是:

RewriteCond %{QUERY_STRING} tag=* $ 
重写规则应该是这样的:

RewriteRule ^subdirectory / [R=301,L]

这在htaccess测试工具中起作用,但在我的服务器上返回一个内部服务器错误。我假设我在条件或规则中出错。

发生内部错误是因为在
标记=*
之后和
$
之前有空格

改变

RewriteCond %{QUERY_STRING} tag=.* $ 


应该修复该错误

是。成功了。谢谢。没问题,请随意回答正确的问题,以便与您有相同问题的其他用户知道您是如何解决问题的。
RewriteCond %{QUERY_STRING} tag=.*$