我为一个新网站提供了一个完美的(目前为止)wordpress设置。漂亮的网址按预期工作。
我有一个动态页面,根据查询字符串加载内容:
/dynamic/?loc=england&code=uk
我希望将此网址设为“漂亮”,但每次修改.htaccess时都不会进行任何更改。尝试了一切,谷歌搜索其他一切 - 最后的手段。如果我能得到以下工作,那么我会很高兴。
我需要让网址看起来像。
/dynamic/location/england/code/uk/
将此添加到任何.htaccess会破坏整个网站。
RewriteRule /dynamic/(.*)/(.*)/(.*)/(.*)/$ /dynamic?$1=$2&$3=$4
我缺少什么。
提前致谢
<磷>氮答案 0 :(得分:11)
不要将重写规则添加到.htaccess
文件中。 WordPress会为您管理该文件,因此请尽量使用内置功能。</ p>
WordPress实际上有一个标准的高级rewrite engine - 它可以像平台的其他部分一样可插拔。
然而,诀窍是与它合作。您需要注册您的RegEx,以便WordPress知道要匹配的字符串类型(即dynamic/location/(.*)/code/(.*)
=&gt; /dynamic?$loc=$1&code=$2
)。然后,您需要在后端设置页面和脚本来处理提交。
对于类似的示例,请查看我在WordPress Answers上解析自定义帖子类型的自定义网址时收到的答案。扩展这一点,您需要设置类似以下的代码(注意:未经测试!!!):
<?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
文件中。