2017-06-10 9 views
1

これは私のサーバー.htaccessのコンテンツです。私はそこにWordpressによって動かされるウェブサイトを持っています。古いドメインを新しいドメインにリダイレクトする方法はありますか

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

# Convert old permalink structure to the new one 
RedirectMatch 301 ^/(\d+)$ http://example.com/?p=$1 
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ http://example.com/$4 

# Redirect all requests to .com 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule ^/(.*) http://example.com/$1 [L,R=301] 

</IfModule> 

# END WordPress 

私の質問は、このように作用する.comに要求をリダイレクトするために使用される2つの行についてです:

http://example.org/post_name/ ==>http://example.compost_name

あなたは/を見ることができるようにされますtldとURIの間の新しいURLに欠落があります。また、私は結果に影響を及ぼさなかった、あまりにもこのルールでチェック:

RewriteRule^http://example.com%{HTTP_URI} [L,R=301] 

適切なリダイレクトルールを書くために私を助けてください。

答えて

1

私にとってはうまく見えます。そのようにリダイレクトするべきではありません。私はあなたのブラウザにキャッシュされた壊れたリダイレクトを持っていると思います。キャッシュをクリアしてもう一度テストしてみてください。リダイレクトは、テスト中に301の代わりに302に設定できます。これは一時的なリダイレクトであり、キャッシュされていない可能性があります。

更新

OPによってさらに調査では、それは.htaccess書き換えルールと競合し、適切に動作することを妨げるされたサーバーのリダイレクトがあったが判明しました。これらのリダイレクトを削除することで問題は解決しました。

+0

キャッシュではないと確信しているので、これは便利ですが、私の問題を解決できません。私はさまざまなブラウザと異なるpost_namesでテストしました。 –

+0

あなたが投稿した '.htaccess'から来ることはできません。すべてのスラッシュがリダイレクトに明示的に追加されているため、スラッシュなしでexample.comにリダイレクトすることはできません。おそらく、それはあなたのWebサーバーの前にあるリバースキャッシュにキャッシュされていますか?ワニスなど?他のリダイレクトルールもあります。 – SuperDuperApps

+0

あなたは正しいと思います。私のルールをexample2.comに変更したので影響はありません。このタイプのキャッシュをクリアするにはどうすればよいですか? –

関連する問題