将编码的URL重定向到主页

时间:2016-06-01 12:50:35

标签: php .htaccess redirect

我们在网站上遇到编码网址的问题导致网址如下:

  

ROS%C3%A9-wine.php

现在已在sitemaps文件中替换为正确的:

  

玫瑰wine.php

然而,由于这些网址在野外,我们现在在Google上有重复的网页以及许多带有编码ë等的网页。

有没有办法使用htaccess将任何编码的网址重定向到主页?

谢谢,

瑞克

2 个答案:

答案 0 :(得分:1)

您可以在htaccess中进行以下重定向:

RewriteEngine on

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

这会将uri /ros%3C%A9-wine.php 永久重定向到 /

如果有多个类似的uris要重定向,您可以使用:

RewriteEngine on

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

答案 1 :(得分:0)

原因你可以!对于此示例,它可以是

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

原因是,您可以手动编写,甚至可以使用程序创建.htaccess,但如果有很多这样的URL,我建议编写一个简单的重定向程序,用相应的拉丁字符替换所有字符,如ë。

<?
  $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();
   }
?>