2016-06-01 3 views
1

ホームページために私たちは、URLのような原因当社のウェブサイト上でエンコードされたURLに問題がありました正しいとサイトマップファイル:リダイレクトエンコードされたURLが

はバラwine.php

これらのURLは野生のものだったので、Googleには重複したページがあり、エンコードされたëなどもあります。

htaccessを使ってエンコードされたURLをホームページにリダイレクトする方法はありますか?

おかげで、

リック

することができます。原因
+0

[この回答](http://stackoverflow.com/questions/13818776/remove-characters-from-url-with -htaccess)はあなたにとって非常に役に立つかもしれません。 – Martin

答えて

1

次のhtaccessファイルにリダイレクトすることができます。

RewriteEngine on 

RewriteCond %{THE_REQUEST} /ros%3C%A9-wine\.php [NC] 
RewriteRule ^/[R=301,L] 

これは恒久的に/にURI /ros%3C%A9-wine.phpをリダイレクトします。リダイレクトするために、複数の類似したURIがある場合

、あなたはこれを使用することがあります。

RewriteEngine on 

RewriteCond %{THE_REQUEST} /.*%3C|%A9.*\sHTTP [NC] 
RewriteRule ^/[R=301,L] 
+0

OPのサイトマップに1百万件のURLが間違っている場合はどうなりますか? – DanFromGermany

+0

ありがとう、私は答えを更新しました。 – starkeen

+0

でも、そのリダイレクトはユーザーを正しいアドレスにリダイレクトしません。メインページにリダイレクトされます。私はそれが目標だとは思わない。 – Jehy

0

!この例では、それはあなたが手動でそれを書く、あるいはプログラムで.htaccessを作成しますが、このような多くのURLがある場合、私は、単純なリダイレクトプログラムを書くことをお勧めすることができ、原因

Redirect ros%C3%A9-wine.php rose-wine.php

することができましたëのようなすべての文字を対応するラテン文字に置き換えます。

<? 
    $url=$_SERVER['REQUEST_URI']; 
    $url2=str_preplace('%C3%A9','e');//repeat as many times for other chars as you need 
    if($url!=$url2)//URL was wrong 
    { 
    Header('Location: '.$url2)//redirect user to correct URL 
    exit(); 
    } 
?> 
+0

これは.htaccessソリューションではなくPHPであるため、このソリューションではOPが 'mod_rewrite'などのようなPHPファイルを介してすべてのURLを実行する必要があります。私はOPが現在これをしているとは確信していません。すでに言及したように、 – Martin

+0

@ Martinを確立する複雑な獣です。OPは大きな.htaccessファイルで管理できますが、長く、手作業で醜い方法になります。 – Jehy

関連する問題