admin管理员组文章数量:1332389
For example this code
class My_Sitemap
{
public static function install()
{
add_filter('rewrite_rules_array', array(__CLASS__, 'rewriteRules'), 1, 1);
global $wp_rewrite;
$wp_rewrite->flush_rules(false);
}
public static function rewriteRules($wpRules)
{
$rules = array(
'sitemap\.xml$' => 'index.php?pagename=my-sitemap',
);
return array_merge($rules, $wpRules);
}
public static function parseRequest($wp)
{
if (!isset($wp->query_vars['pagename'])) {
return true;
}
if ($wp->query_vars['pagename'] !== 'minimal-xml-sitemap') {
return true;
}
self::outputXML();
}
public static function outputXML()
{
echo 'hello';
}
}
register_activation_hook(__FILE__, array('My_Sitemap', 'install'));
add_action('parse_request', array('My_Sitemap', 'parseRequest'));
the rewrite rule is sitemap\.xml$
, shouldn't it be ^sitemap\.xml$
? If I go to mysite/asitemap.xml it doesn't work, but mysite/sitemap.xml works. Which one is correct?
For example this code
class My_Sitemap
{
public static function install()
{
add_filter('rewrite_rules_array', array(__CLASS__, 'rewriteRules'), 1, 1);
global $wp_rewrite;
$wp_rewrite->flush_rules(false);
}
public static function rewriteRules($wpRules)
{
$rules = array(
'sitemap\.xml$' => 'index.php?pagename=my-sitemap',
);
return array_merge($rules, $wpRules);
}
public static function parseRequest($wp)
{
if (!isset($wp->query_vars['pagename'])) {
return true;
}
if ($wp->query_vars['pagename'] !== 'minimal-xml-sitemap') {
return true;
}
self::outputXML();
}
public static function outputXML()
{
echo 'hello';
}
}
register_activation_hook(__FILE__, array('My_Sitemap', 'install'));
add_action('parse_request', array('My_Sitemap', 'parseRequest'));
the rewrite rule is sitemap\.xml$
, shouldn't it be ^sitemap\.xml$
? If I go to mysite/asitemap.xml it doesn't work, but mysite/sitemap.xml works. Which one is correct?
1 Answer
Reset to default 2I just did a test and it seems like the rewrite rules imply ^ if you do not specify it. In my test I found:
rule 'foo' matched url 'foo'
rule '^foo' matched url 'foo'
rule 'foo' did not match url 'afoo'
rule '^foo' did not much url 'afoo'
rule '.*foo' matched url 'afoo'
So i had to explicitly add some matching regex at the start for it to match extra characters at the start. 'foo' did not match 'afoo'
Personally, I like to be specific, so I think you're right it makes sense to make your regex '^sitemap\.xml$'
because that's what it will do.
本文标签: url rewritingWordpress rewrite rules don39t need
版权声明:本文标题:url rewriting - Wordpress rewrite rules don't need ^? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742290347a2447680.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论