2016-09-19 10 views
1

それは、さまざまな理由で私のウェブサイトURLを変更しなければならないことが判明しました。古いURLはGoogleでインデックスに登録されています。新しいURLに新しいコンテンツが表示されます。301リダイレクトApacheが間違ったURLを表示する

Redirect 301 /library/books/pitz-lower.php http://www.example.com/library/pitz-lower.php 

が、Googleから取得するには、ブラウザのURLは次のようになります:

http://www.example.com/library/pitz-lower.php?url=library/pitz-lower 

htaccessの

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 


RewriteBase/
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 




RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /library/library\.php\?url=([^\s]+) [NC] 
RewriteRule^/library/%1.php? [L,R=301] 
RewriteCond %{REQUEST_URI} !^/library/library\.php 
RewriteRule ^library/(.+)\.php$ /library/library.php?url=$1 [L] 

</IfModule> 

#r301 

Redirect 301 /library/books/pitz-lower.php http://www.example.com/library/pitz-lower.php 

私は理由を理解していない

は、私はこれを追加しました誰かが私に手を差し伸べる?ありがとうございました !!

+2

完全な.htaccessを表示できますか? – anubhava

+2

「しかし、Googleから手に入れる」とはどういう意味ですか? – arkascha

+0

投稿を編集します。ありがとう!私の英語には申し訳ありません – PlayerWet

答えて

1

2つの問題があります。

  1. mod_rewriteルールとmod_aliasルール(すなわちRedirectディレクティブ)をミキシングは、異なる時間に実行するこれらの2つのモジュールとして良いではありません。
  2. 301内部リライトの前にリダイレクトルールを保持します。

あなたの修正の.htaccessは次のようになります。

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteRule ^library/books/pitz-lower\.php$ /library/pitz-lower.php [L,NC,R=301] 

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /library/library\.php\?url=([^\s]+) [NC] 
RewriteRule^/library/%1.php? [L,R=301] 

RewriteCond %{REQUEST_URI} !^/library/library\.php 
RewriteRule ^library/(.+)\.php$ /library/library.php?url=$1 [L,QSA] 

はこれをテストしながら、ブラウザのキャッシュをクリアすることを忘れないでください。

+2

あなたは大きくてとても大きく、完全に印象的です。どうもありがとう !! – PlayerWet

関連する問題