我发现我们网络服务器上的一个站点的某些 URL 被删除了。具体来说,当用户点击链接以幻灯片形式显示图像时,该页面的 URL 会被?show=slide
附加。被删除的就是这部分。
除了这个问题之外,网站运行正常。此外,该网站以前运行正常,我甚至不确定它是什么时候出现故障的,因为我很少访问它,而且我的更改日志中唯一出现的是 WordPress 及其插件的更新。
我已确认这不是由 .htaccess 文件中的任何内容引起的,方法是在我的开发服务器上安装该站点的精确副本,然后它按预期运行。我还将站点的 Apache 虚拟主机配置复制到测试服务器。
实时服务器和开发服务器之间唯一显著的区别是前者是 Centos 5.5,而另一个是 Debian 6.0。
我束手无策。如果不是 Apache 虚拟主机配置或 .htaccess 文件,我还能在哪里查找可能导致此问题的原因?
更新
虽然对于普通人来说,确实有部分 URL 被占用了,但结果却是 mod-rewrite 和 301 重定向。这是一个误导性症状。有问题的网站运行 WordPress 和许多插件。主代码的永久链接重写和其中一个插件的永久链接重写彼此不兼容,无法很好地协同工作。
经过多次卸载和重新安装,以及以各种顺序关闭和打开永久链接,终于让一切正常工作。但碰巧的是,URL 中明显消失的部分本来就是错误的,导致网站上的功能无法使用。
答案1
mod_rewrite
在舞厅里,有烛台。
确实在被证明无罪之前都是有罪的!也许可以编辑一些关于规则从哪里潜入以及你是如何追踪到它的细节?