2017-09-03 6 views
0

こんにちは、301リダイレクトで.htaccessに問題があります。301いくつかのURLで動作し、htaccessで他のURLには作用しません。

URLの90%ですべてがうまく見えますが、個々のブログ投稿のリダイレクトはありません。なぜ私は見つけることができません

RewriteRule ^old-url-portfolio/(.*)$ page/new-url-portfolio/$1 [L,NC,R=301] 
RewriteRule ^Portfolio/Detail/(.*)$ portfolio/$1 [L,NC,R=301] 

RewriteRule ^old-url/7/ page/new-url/ [L,NC,R=301] 
RewriteRule ^contact-us-old/ page/contact-us-new/ [L,NC,R=301] 
RewriteRule ^blog.php page/blog/ [L,NC,R=301] 

:ここ

は、彼らがリダイレクトされませんコードです:

RewriteRule ^blog-article.php?id=38 blog-post/xxxx-xxxxxx-xx-x-xxxxxxx/9/ [L,NC,R=301] 
RewriteRule ^blog-article.php?id=34 blog-post/xxxxxxx/4/ [L,NC,R=301] 

しかし、他の301回の書き換えの全てが動作し、彼らはこのように見えますblog.phpファイルが新しいページに送信されているため、動作していないファイルが個別のファイルであるためではありません。

任意のアイデアをいただければ幸いです:)周りの仕事を見つけ

答えて

0

、それは問題にid =数はので、私は単純に、このやっている縫い目:?

RewriteCond %{QUERY_STRING} ^id=38$ 
RewriteRule ^blog-article\.php$ http://www.xxxxxxx.co.uk/blog-post/xxxx-xxxxxx-xxxx/9/ [R=301,L] 
1

をあなたがして、クエリ文字列にマッチすることはできませんRewriteRuleのパターン。 blog-article.php?id = 123を別の場所にリダイレクトするには、RewriteCondディレクティブを使用して%{QUERY_STRING}と照合する必要があります。

注:トレンディング?宛先パスの末尾にあるは、古いクエリーストリングを破棄するので重要です。