如何重定向URL参数?m = 1?

时间:2015-08-20 12:41:50

标签: php html wordpress .htaccess

我最近从blogger切换到wordpress,并注意到许多传入链接在我的帖子链接末尾添加了?m=1参数。

示例:

http://www.example.com/2015/06/name-of-blog-post.html?m=1 

我搜索了一种取出?m=1参数的方法,但我在此网站上发现了类似的情况,但该人也遇到了一些问题,其中某些链接缺失.html

据我所知,我的所有链接都添加了.html,所以我不知道他的代码会起作用。

对我来说,解决这个问题最简单,最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

您无法更改传入的链接 - 这些链接是由用户点击的页面上的href标记设置的。

除非您的页面使用该变量,否则它不会影响页面上的内容,例如在PHP中通过$_GET

$data = $_GET["m"];
print $data; //will output "1"

通常在这种意义上使用它来查看推介的来源 - 例如,Facebook会将?ref=ts附加到外发链接的末尾,以显示它是从“热门搜索”中点击的。

答案 1 :(得分:1)

要在?m=1(确切地)作为URL参数传递时完全删除查询字符串,那么您可以使用mod_rewrite在根.htaccess文件中执行类似的操作。以下指令应放在.htaccess文件的顶部:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^m=1$
RewriteRule (.*) /$1? [R=302,L]

当您确定它正常工作时,将302(临时)更改为301(永久)。由于浏览器缓存了永久重定向,因此不适合进行测试。

但是,如果这只是解决规范化问题(控制搜索引擎正在编制索引的网址),那么您只需在rel="canonical"部分使用head元素即可。

此外,在Google Search Console(以前称为Google网站管理员工具)中,您可以指示Google忽略m网址参数。虽然这显然只会影响谷歌。

如果您需要匹配?m=1?m=0,则可以将 CondPattern ^m=1$更改为^m=[01]$