用于重定向转义字符的Htaccess

时间:2015-03-21 16:41:49

标签: .htaccess

不知何故php urldecode无效 - 因此寻找通过htaccess进行重定向的替代方法 这是重定向的最佳方式

错误的网址

http://www.example.com/index.php%3Foption%3Dcom_toys%26view%3Dproduct%26Itemid%3D2%26id%3D8%26vid%3D175

Htaccess Code - 它以某种方式重定向到404页面

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\%3[fF]option\%3[dD]([^\ ]+)\ HTTP/ 
RewriteRule ^index\.php http://www.example.com/index.php?option=%2 [R=301,L] 

将最终输出网址设为

 http://www.example.com/index.php?option=com_toys%2526view%253Dproduct%2526Itemid%253D2%2526id%253D8%2526vid%253D175

所需的网址是

http://www.example.com/index.php?option=com_toys&view=product&Itemid=2&id=8&vid=175

1 个答案:

答案 0 :(得分:0)

使用此功能解码您的网址:

<?php
  function utf8_urldecode($str) {
    $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
    return html_entity_decode($str,null,'UTF-8');;
  }
$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$decode = utf8_urldecode($real_url);
echo $decode;
?>

然后你应该没有任何问题。