2017-04-20 31 views
0

WordPressに変換したサイトの.htaccessファイルに301のリダイレクトを設定しようとしています。.htaccess 301 /?p = blahblahblahからリダイレクト

古いサイトには、次の

http://www.example.com/?p=about 
http://www.example.com/?p=contact-us 

のように、私が試してみました書き換えルールを見URLは以下の通りですが、どれも作業していました。 WordPressのルールを書き換えているかのように思え

Redirect 301 /?p=about /about/ 
Redirect 301 /?p=contact-us /contact-us/ 

Redirect 301 /?p=about http://www.example.com/about/ 
Redirect 301 /?p=contact-us http://www.example.com/contact-us/ 

Redirect 301 /\?p=about /about/ 
Redirect 301 /\?p=contact-us /contact-us/ 

Redirect 301 /\?p=about http://www.example.com/about/ 
Redirect 301 /\?p=contact-us http://www.example.com/contact-us/ 

は、私は301リダイレクトのワードプレスの上にルールをリダイレクトしているにもかかわらず、最初に蹴っています。表示されているページは、ブログロールページで、投稿がないため「何も見つかりません」と表示されます。

これらのリダイレクトを動作させる方法はありますか?

+0

ブラウザでプライベートタブを開くとリダイレクトが動作(またはあなたが前にサイトを訪問したことがないブラウザをしようとすると見てみました:ここ

はあなた.htaccessファイルに入れなければならないだろうがに)? 301リダイレクトは永続的で、ほとんどのブラウザは明示的に消去されるまでキャッシュします。 – jackmullen

+0

ちょうどそれを試みた。まだ動かない。 – unu

答えて

0

あなたは正しいです:リダイレクトルールは、ワードプレスの後に置かれた場合は考慮されません。このライン:

RewriteRule . /index.php [L] 

が最後にすべてのもの、そしてル[L]をリダイレクトしますが、これが最後のルールであることを意味します。

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# old site redirections 
RewriteRule /?p=about /about/ [L,R=301] 
RewriteRule /?p=contact-us /contact-us/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 
関連する問題