.htaccess通过rewriteRule将字符添加到url中

时间:2012-04-17 05:22:46

标签: apache .htaccess mod-rewrite

我有一个重写规则,可以将www.OLDsite.co.uk/locations.php?area=Barking,%20Essex重定向到www.NEWsite.co.uk/locations.php?area=Barking,%20Essex

......理想情况下,无论如何。问题存在于URL的末尾。而不是像它应该重定向到上面的新网站...而是生成以下网址:www.NEWsite.co.uk/locations.php?area=Barking,%2520Essex。我真的很困惑......这是我目前的.htaccess文件......

RewriteEngine on
RewriteRule ^locations.php/(.*)$ http://www.NEWsite.co.uk/locations.php$1 [R=permanent,L]
ErrorDocument 404 /404.php

我是mod_rewrites的新手,但我愿意学习。我知道这是一个非常强大的工具,在我的开发人员库中使用它并不是一件坏事。所有提示都表示赞赏。

2 个答案:

答案 0 :(得分:2)

将您的RewriteRule更改为:

RewriteRule ^(locations\.php.*)$ http://www.localhost/$1 [R=301,L,NE]

此处的重要更改是标记NE,它告诉Apache不对生成的URI进行编码,因此%20仍为%20而不是%2520

答案 1 :(得分:1)

问题是:

%25 is equal to "%" symbol

但那等于%20或空格..不要使用space..use“+”