it-swarm.cn

Wordpress会覆盖HTACCESS中设置的GET变量(page_id) 

我有一个非常大的wordpress网站,并推动Wordpress达到极限。它使用了许多页面/类别和许多.htaccess规则来组织网站的各个部分(它适用于大型杂志)。

一个特别的问题是真的难倒我。我在.htaccess中有以下规则......

RewriteRule ^(cat|tag)/([^\/]+)(/?)$ index.php?page_id=3&s1=$2 [L,QSA]
RewriteRule ^xyz/([^\/]+)(/?)$ index.php?page_id=6&s1=$1 [L,QSA]

现在,如果提供给cat/tag页面的参数没有尾部斜杠,它总是有效。如果参数有一个尾部斜杠,,那么有问题的标签会匹配非Wordpress表中与'xyz'页面一起使用的条目,Wordpress即使标签存在,也会加载该页面。

我已经测试过规则总是有效,而且确实如此。 Wordpress始终获得正确的$ _GET ['page'] 3和标签slug为$ _GET ['s1'],但如果上述情况属实,则决定完全显示不同的页面。

一切都在.htaccess内完成,wordpress中的永久链接完全关闭。如何停止WP表单决定它被告知使用的page_id。

1
beseku

WordPress的URL路由非常难以使用。我期待有一天它被更合理的东西所取代(我希望我能成为代替它的代码,但我离题了......)

但是我认为你的第一个问题是试图在.htaccess中做所有事情。我可能比其他任何人都知道更多的URL设计和URL重写经验,我真的不会尝试用.htaccess来对抗WordPress;你最有可能只得到那种让你发疯的结果。相反,我会尝试从WordPress中管理URL路由,并在需要覆盖WordPress真正搞砸的东西时使用挂钩。

但是,为了让我完全理解你要完成的工作并规定一个合适的解决方案,我想看到你网站上的URL和你想要的URL的完整地图。

最后,我将下面的一些相关问答链接起来。他们没有直接回答你的问题,但他们可能会给你一些见解,最后一个是关于扩展WordPress以获得高流量。

2
MikeSchinkel