来自?url = http://google.com的$ _GET网址

时间:2011-05-14 16:04:21

标签: php .htaccess

我正在为我的网站制作一个重定向脚本,我使用htaccess来重写URL,使其看起来更好。

例如。 http://localhost/r/http://google.com是网址,但是当我打印显示的值时,它显示为http:/google.com 缺少一个/,我该如何解决?

修改
重写规则:
RewriteRule ^r/(.*)/$ /system/offsite/redirect/index.php?url=$1 [L]

感谢您的帮助:)

3 个答案:

答案 0 :(得分:1)

使用php urlencode功能

编辑:

//echo your url
echo 'http://localhost/r/'. urlencode('http://google.com');

并在index.php文件中

//get your url
$url = urldecode($GET['url']);

答案 1 :(得分:1)

此行为是由于Apache在映射之前删除了空路径段。但您可以通过 THE_REQUEST

访问原始请求的URI路径
RewriteCond %{THE_REQUEST} ^GET\ /r/([^\ ]+)
RewriteRule ^r/ /system/offsite/redirect/index.php?url=%1 [L]

答案 2 :(得分:1)

我认为REQUEST_URI变量将具有正确的文本。像这样使用它:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/r/(.*)$
RewriteRule ^r/ /system/offsite/redirect/index.php?url=%1 [L,QSA,NC]