我有一个非常好的(到目前为止)新网站的 wordpress 设置。漂亮的网址按预期工作。
我有 1 个根据查询字符串加载内容的动态页面:
/dynamic/?loc=england&code=uk
我也希望这个 URL 变得“漂亮”,但每次我修改 .htaccess 时都没有进行任何更改。尝试了一切并用谷歌搜索了其他一切——最后的手段。如果我能让以下内容工作,我会很高兴。
我需要使 URL 看起来像。
/dynamic/location/england/code/uk/
将此添加到任何 .htaccess 会破坏整个网站。
RewriteRule /dynamic/(.*)/(.*)/(.*)/(.*)/$ /dynamic?$1=$2&$3=$4
我错过了什么。
提前致谢
N
最佳答案
不要将重写规则添加到您的 .htaccess
文件中。 WordPress 会为您管理该文件,因此请尽可能使用内置功能。</p>
WordPress 实际上有一个有点高级的 rewrite engine标准配置 - 并且它像平台的其他部分一样是可插拔的。
不过,诀窍在于使用它。您需要注册 RegEx,以便 WordPress 知道要匹配的字符串类型(即 dynamic/location/(.*)/code/(.*)
=> /dynamic?$ loc=$1&code=$2
).然后您需要在后端设置页面和脚本来处理提交。
对于类似的示例,请查看我在 WordPress Answers 上收到的关于使用自定义帖子类型解析自定义 URL 的答案。 .对此进行扩展,您需要设置类似于以下的代码(注意: 未经测试!!!):
<?php
add_action('init', 'add_my_rewrite');
function add_my_rewrite() {
global $wp_rewrite;
$wp_rewrite->add_rule('location/([^/]+)/code/([^/]+)','index.php?loc=$matches[1]&code=$matches[2]','top');
$wp_rewrite->flush_rules(false); // This should really be done in a plugin activation
}
这应该将重写结构自动添加到您的.htaccess
文件中。
关于php - Wordpress 自定义查询字符串和漂亮的 URL - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597289/