禁止用户在WordPress站点上用句号替换连字符



在审查了Google Analytics和广告流量之后,我们意识到人们能够以一种非常奇怪的方式在客户网站上找到页面。将连字符替换为句号。

例如…

正确永久链接:www.domain.com/this-is-a-link错误:www.domain.com/this.is.a.link

都工作并将用户发送到同一页面。但我不知道为什么。我们尝试了各种浏览器,似乎在所有的浏览器上都是一样的。通常情况下,这对用户是有帮助的(一般来说),但它会扭曲分析。

我怀疑是广告团队的人把问题的根源和周期联系在了一起。但是,即使修复了这个问题,它也没有回答为什么这个工作或如何禁止这个行为/功能的问题。

任何想法吗?

Wordpress使用mod_rewrite永久链接。mod_rewrite在url中使用模式匹配来区分.htaccess文件中哪些需要重写,哪些不需要重写。

.字符实际上意味着正则表达式模式匹配中的任何字符,这是mod_rewrite用来确定重写内容的。

为了更好地说明这一点,以

为例
www.domain.com/this-is-a-link

是你想要的正确链接,但在

的情况下
www.domain.com/this.is.a.link

也将匹配.被读取为-,因为单点表示任何字符

你可以阅读更多关于mod_rewrite的信息,以更好地理解为什么句号也被读取为破折号。

解决这个问题的唯一方法是重写默认的Wordpress原生mod_rewrite模式,或者将其报告为一个错误,要求核心社区将其列为一个错误,这将是更合适的。但这似乎很常见,即使是像eBay这样的大型网站,url

 http://www.ebay.com/rpp/halloween-events/sweet-treats

url与

 http://www.ebay.com/rpp/halloween-events/sweet.treats

也是有效的。我相信这是mod_rewrite的一个限制,所以你可能想要忍受它。

最新更新