1

不幸的是,我被困在运行 WordPress 网站的 Windows 服务器上。我的主机已安装iirf用于 URL 重写。

我终于得到了这个工作,有点小题大做。但是,在生成匹配规则时,rewrite_rulesWordPress 内部并没有预先设置。index.php因此,当服务器发送类似 的请求时index.php/foo/bar,WordPress 会尝试将其与foo/bar.

我已经创建了一个解决方法,index在重新创建规则之前添加到规则中。

add_filter('rewrite_rules_array', 'add_index');
function add_index($rules){

foreach ($rules as $rule => $rewrite) {
   if(!strpos($rules[$rule],'index.php') !== false) {
       unset($rules[$rule]);
       $rules['index.php/' . $rule] = $rewrite;
    }

}

return $rules;

}

目前这似乎运行正常,但似乎我正在掩盖一个潜在的问题。WordPress 不应该自动以这种方式创建规则,或者是否有一个我缺少的设置标记是否添加index.php

4

0 回答 0