2
由于不值得进入此处的原因,Google一直使用URL中的一个不必要的查询字符串为我的一个网站建立索引。我想将我的htaccess文件修改为301将所有这些请求重定向到URL,而不需要查询字符串的不必要部分,但保留查询字符串中可能(或不可以)成为地址的一部分的任何其他部分确保保留其他功能。使用htaccess删除单个查询参数
例如,以下网址
http://example.com/product.php?query=12345
http://example.com/index.php?section=ABC123&query=56789
http://example.com/search.php?query=987654&term=keyword
将成为
http://example.com/product.php
http://example.com/index.php?section=ABC123
http://example.com/search.php?term=keyword
有效剥离 '查询= XXXXX' 加?或&,但要确保其他查询在删除后保留并且语法正确(即,从第三个示例中删除?query = 98765将不起作用,因为它会将链接保留为search.php & term = keyword,而不是比search.php?term = keyword)。
一直在寻找通过一些其他的协议栈的答案,发现这个:
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} (.*)?&?query=[^&]+&?(.*)? [NC]
RewriteCond %{REQUEST_URI} /(.*)
RewriteRule .* %3?%1%2? [R=301,L]
但是,这似乎并没有工作,我的htaccess &正则表达式的知识是不够好,找出原因。
预先感谢任何指针。