Wordpress URL not working?

时间:2017-04-26 作者:user118443

我正在使用Wordpress,我有一些URL问题。

我当前的URL是服务器上的IP地址:http://www.192.10.1.22/states/?q=ohio

我想要URL:http://www.192.10.1.22/states/ohio

我在中使用了以下代码functions.php 文件,它在mylocal中工作,但当我在Cpanel中上载时,它现在工作了,给我一个找不到的错误页面。

function custom_rewrite_rule() {
      add_rewrite_rule(        
            \'states/([^/]*)/?\',        
            \'index.php/states/?q=$1\',        
            \'top\' );
    }

    add_action(\'init\', \'custom_rewrite_rule\', 10, 0);
我还更新了permalink,apache mode\\u rewrite也处于启用状态。那么我该如何解决这个问题呢?

2 个回复
SO网友:Oleg Butuzov

这不是怎么回事rewrite_rules 在Wordpress中工作。你错过了两件事。

  1. Match. 它有$1, 但在现实中(看看example), 你需要与$matches.Query Var. 您使用q, 但它不是wp-native或在示例代码中声明的。您可以使用其中一个公共的或声明query var 以及背后的逻辑OK 使用正则表达式并已实现前两个更改,但仍然不起作用-我建议使用debug bar 和我的插件debug bar rewrite rules

SO网友:Faysal Mahamud

在函数中添加以下代码。php

add_filter(\'query_vars\', \'add_state_var\', 0, 1);
function add_state_var($vars){
    $vars[] = \'state_names\';
    return $vars;
}

function custom_rewrite_rule() {
      add_rewrite_rule(\'^states/([^/]*)/?\',\'index.php?post_type=page&pagename=states&state_names=$matches[1]\',\'top\');
}

add_action(\'init\', \'custom_rewrite_rule\', 10, 0);
flush_rewrite_rules();

相关推荐

如何在我的根域上组合WordPress htaccess+在子文件夹上组合php

我为一个看似重复的问题道歉,但我所看到的几十个问题中,没有一个是同样的问题。我有以下目录结构:/.htaccess /index.php /subfolder/.htaccess /subfolder/index.php 我希望所有页面请求都由/index.php, 除非请求启动/subfolder 在这种情况下,应由/subfolder/index.php.e、 g。/abc 将重写为/subfolder/abce、 g。/subfolder/def 将重写为/subf