找不到指定重定向的位置

时间:2017-12-21 05:12:53

标签: php wordpress .htaccess redirect

我最近成为Wordpress网站的维护者(我对wordpress完全不熟悉),而且我在确定指定重定向的位置时遇到了一些困难。

我检查了.htaccess文件,但那里没有指定任何内容。据我所知,重写规则不是原因。

我尝试删除重定向的网页并重新创建,重定向仍然存在。

我的问题是:你在哪里可以指定重定向?我已经没有了想去哪里的想法。

2 个答案:

答案 0 :(得分:0)

我的一位客户想要自定义网址

https://www.qsleap.com/gmat/resources 正如您在wordpress中所知,evry请求是由index.php捕获的。请求过滤器捕获请求和 打电话给页面。

阅读此代码,它可能会给你任何想法。

 function permalinks_customizer_request_before($query ){
$uri=$_SERVER['REQUEST_URI'];
$match= preg_match('/(gmat|gre|sat|lsat|cat)(\/resources\/tags\/)
(.*)\/(articles|videos|concept-notes|qna)/', $uri,$matches);
//$match= 
preg_match('/(gmat|gre|sat|lsat|cat)/\resources/\tags/stanford-
gsb/\articles|videos|concept-notes)/?$', $uri,$matches);
if($match){

    $url = parse_url( get_bloginfo( 'url' ) );
    $url = isset( $url['path'])  ? $url['path'] : '';
  $request = ltrim( substr( $_SERVER['REQUEST_URI'], strlen( $url ) ), '/' );
    $request = ( ( $pos = strpos( $request, '?' ) ) ? substr( $request, 0, $pos ) : $request );
    if ( ! $request )
        return $query;
    $original_url="?page_name=tags&exam=".$matches[1]."&post_tag=".$matches[3]."&post_type=".$matches[4];
    if ( $original_url !== null ) {
        $original_url = str_replace('//', '/', $original_url);
        if ( ( $pos = strpos( $_SERVER['REQUEST_URI'], '?' ) ) !== false ) {
            $queryVars = substr( $_SERVER['REQUEST_URI'], $pos + 1 );
            $original_url .= ( strpos( $original_url, '?' ) === false ? '?' : '&') . $queryVars;
        }
        $oldRequestUri = $_SERVER['REQUEST_URI'];
        $oldQueryString = $_SERVER['QUERY_STRING'];

        $_SERVER['REQUEST_URI'] = '/' . ltrim( $original_url, '/' );
        $_SERVER['QUERY_STRING'] = ( ( $pos = strpos( $original_url, '?' ) ) !== false ? substr( $original_url, $pos + 1 ) : '' );

        parse_str( $_SERVER['QUERY_STRING'], $queryArray );
        $oldValues = array();
        global $wp;
        $wp->parse_request();
        $query = $wp->query_vars;
        if ( is_array( $queryArray ) ) {
                foreach ( $queryArray as $key => $value ) {
                        $oldValues[$key] = $_REQUEST[$key];
                        $_REQUEST[$key] = $_GET[$key] = $value;
                        $query[$key]=$value;
                }
        }
        $_SERVER['REQUEST_URI'] ='';
        $_SERVER['QUERY_STRING']='';
    }


 }
 return $query;
 }


 add_filter( 'request','permalinks_customizer_request_before',0);
 function wp_url_rewrite_templates() {
     if (get_query_var( 'page_name' ) && get_query_var( 'page_name' 
   )=='tags') {
    add_filter( 'template_include', function() {
        $template= dirname( __FILE__ ) . '/page-tags.php';
        return $template;

    });
}


  }
  add_action( 'template_redirect', 'wp_url_rewrite_templates' ,4 );

答案 1 :(得分:0)

我认为删除重定向的最简单方法是使用此插件。

https://redirection.me/

安装并激活后。来自Wordpress管理员

  

工具>重定向

您将看到重定向列表,并添加/删除任何。