为什么WordPress要重写我的定制URL?

时间:2020-07-24 作者:bhoqs

我是wordpress新手,我的网站中可能有一个映射问题

我希望这个搜索引擎优化URL能够正常工作并获得帖子数据:
http://domain/web/d-post/M00069/TomLi

如果不使用SEO URL(获取操作),那就是工作
http://domain/web/d-post?d_id=M00069&d_name=TomLi
http://domain/web/d-post/?d_id=M00069&d_name=TomLi
http://domain/web?pagename=d-post&d_id=M00069&d_name=TomLi
http://domain/web/?pagename=d-post&d_id=M00069&d_name=TomLi

在这种情况下
http://domain/web/d-post/M00069/TomLi
但是为什么我的页面将重定向到:
http://domain/web/d-post/

我应该设置或更改一些可以使我的URL工作的内容吗<非常感谢

在中。htaccess

#
RewriteEngine On
RewriteBase /web/
RewriteRule ^d-post/([A-Z0-9]+)/(.*)/$ ?pagename=d-post&d_id=$1&d_name=$2 [L]
#
不使用wp&;在本地主机上运行它正常工作If not using wordpress

3 个回复
最合适的回答,由SO网友:bhoqs 整理而成

哦,我发现我应该添加一些过滤器

add_filter(\'query_vars\',\'d_search_1\');
function d_search_1($vars) {
    array_push($vars, \'d_id\');
    return $vars;
}

SO网友:Sergei

如果我清楚地理解你想改变permalink。您可以在管理菜单中设置任何类型的永久链接>;设置(>);permalinks。

SO网友:Sergei

试试这个。

function myff() {
    global $wp_rewrite;
    
    if ( !isset( $wp_rewrite ) || !is_object( $wp_rewrite ) || !$wp_rewrite->using_permalinks() )
        return;
    if ( is_search() && !is_admin() && strpos( $_SERVER[\'REQUEST_URI\'], "/search/") === false && ! empty( $_GET[\'s\'] ) ) {
        wp_redirect( site_url() . "/search/" . urlencode( get_query_var( \'s\' ) ) );
        exit;
    }   
}
 
add_action( \'template_redirect\', \'myff\' );
或通过。htaccess

   RewriteCond %{QUERY_STRING} \\\\?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]

相关推荐