Перанакіраванне толькі WordPress сайт з 301 рэдырэкт

У мяне ёсць блог, дазваляе сказаць, што example.com і яшчэ адзін блог усталяваны ў example.com/np , які не з'яўляецца многосайтовая але іншы ўстаноўкі WordPress.

Тое, што я хачу, каб перанакіраваць example.com хатняй старонкі толькі example.com/np . Было б выдатна, калі гэта перанакіраванне з'яўляецца 301 пастаянна перамешчаная Перанакіраванне.

Калі я змяшчаю 301 Перанакіраванне ў WordPress файл загалоўка, header.php , ён будзе перанакіроўваць кожную старонку. І калі я праверу, калі старонка з'яўляецца домам і паспрабаваць 301 перапрызначэння, што гэта немагчыма, таму што перанакіраванне загалоўка павінна быць змешчана ў верхняй частцы.

Як гэтага дамагчыся?

1

8 адказы

Так як вы знаходзіцеся ў кантэксце WordPress, вы можаце выкарыстоўваць яго функцыянальныя магчымасці перанакіраваньні.

<�Моцны> Як гэта (у functions.php):

function redirect_homepage() {
    if( ! is_home() && ! is_front_page() )
        return;

    wp_redirect( 'http://redirect-here.com', 301 );
    exit;
}

add_action( 'template_redirect', 'redirect_homepage' );
8
дададзена

Вы не хочаце, каб заблытаць у шаблонах Wordpress або кода для гэтага, проста выкарыстоўваць адзін mod_rewrite правілы ў вашым .htaccess :

RewriteRule//np [R=301,L]

Змесціце яго ніжэй RewriteEngine на радкі, калі ён ужо ёсць, яшчэ дадаць яго ў асобнай радку вышэй RewriteRule радка.

Гэта рашэнне лёгка здымаецца, лёгка ў абслугоўванні, партатыўныя, і працуе лепш, чым рабіць гэта ў PHP ў шаблонах ці WP кода, і выжывае абнаўлення для вашых шаблонаў.

1
дададзена
Я пастанавіў гэта правіла і першым ён не працуе, а другі ён ламае мой сайт. У мяне ёсць ўстаноўка MU
дададзена аўтар NineCattoRules, крыніца
Значыць быў RewriteBase/ там - я не мог ведаць;)
дададзена аўтар Niels Keurentjes, крыніца
Гэта, верагодна, лепшы адказ - калі вы плануеце трымаць вашу тэму ў курсе, што вам не прыйдзецца турбавацца аб перазапісу кода. +1
дададзена аўтар Tony M, крыніца
Я хацеў бы бачыць wp_redirect выкарыстоўваецца і захаваць код перасылак у дзіцячай тэме. Абнаўленне тэмы коды не будзе праблемай, калі вы выкарыстоўваеце дзіцячую тэму, якая з'яўляецца рэкамендаваным спосабам змены паводзін тэмы:
дададзена аўтар Spencer Cameron-Morin, крыніца
Гэта спрацавала, але не да таго часу, я рэдагаваў у гэты RewriteRule ^ $
дададзена аўтар Dipendra Pokharel, крыніца

Змесціце наступнае ў ваш functions.php Выява:

add_action( 'get_header', 'so16738311_redirect', 0 );
function so16738311_redirect()
{
    if( is_home() || is_front_page() ) {
        wp_redirect( home_url( '/np/' ), 301 );
        exit;
    }
}
1
дададзена
вельмі дакладна, Тпй Спенсер!
дададзена аўтар diggy, крыніца
Гэта на самай справе больш кантэкстуальнай адпаведны зачапіць template_redirect : codex.wordpress.org/Plugin_API/Action_Reference/& hellip;
дададзена аўтар Spencer Cameron-Morin, крыніца
Няма праблем, Diggy!
дададзена аўтар Spencer Cameron-Morin, крыніца

<div class="snippet" data-lang="js" data-hide="false"> <div class="snippet-code">

Options +FollowSymLinks


RewriteEngine On
RewriteRule (.*) http://www.Your domain/$1 [R=301,L]


# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
</div> </div>
1
дададзена

Проста змесціце гэта на самым версе index.php файл вашай WordPress ўстаноўкі:

if($_SERVER['REQUEST_URI'] == "/"){
    include('......server file directory to file you want to redirect to');
    exit;
}
1
дададзена

Вы можаце выкарыстоўваць функцыю Wordpress, каб выявіць, калі вы знаходзіцеся на хатняй старонцы:

<�Моцны> is_home

    <�Р> http://codex.wordpress.org/Function_Reference/is_home   
<?php
if ( is_home() ) {
   //This is a homepage - 301 Redirect
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://www.example.com/np");
    exit;
} else {
   //This is not a homepage
}
?>
0
дададзена
Магчыма, я рэдагаваў адказ.
дададзена аўтар Tony M, крыніца
WordPress прадастаўляе функцыю для гэтага wp_redirect : codex.wordpress.org/Function_Reference/wp_redirect
дададзена аўтар Spencer Cameron-Morin, крыніца
Гэта магчыма для нармальнага перанакіраваннем, але, наколькі я ведаю, 301 перанакіраванне не ўяўляецца магчымым у гэтым кодзе. Калі ласка, папраўце мяне, калі я няправільна.
дададзена аўтар Dipendra Pokharel, крыніца

Вы можаце выкарыстоўваць wp_redirect функцыю WordPress з кодам стану. дадаць Follwing кода на WordPress ініцыялізацыі крука

if ( is_home() ) {
    wp_redirect( $location, $status );
    exit;
}
0
дададзена

Вы можаце выкарыстоўваць is_home() або is_front_page() функцыя перанакіраваньні хатняй старонкі.

0
дададзена
Вы не адказалі на сваё пытанне, хоць. Ён хоча ведаць, як перанакіраваць з яго сайта, а не проста вызначыць, калі хатняя старонка запытваецца. :)
дададзена аўтар Spencer Cameron-Morin, крыніца