如何重写url以正确使用php脚本

时间:2017-10-18 05:47:28

标签: php .htaccess mod-rewrite

我有一个重定向外部网址的php脚本,这是脚本

<?php
 header("Refresh: 5; url={$_GET['url']}"); 
 echo 'You are redirecting to ... page'; 
?>

使用此网址重定向

  

http://my-domain.com/url.php?url=http://www.google.com

我想用.htaccess重写这个url所以我在.htaccess文件中添加了一个代码,这个

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^url/(.*)$ /url.php?url=$1 [L]

因此,在添加此代码后,它应该使用此URL重定向

  

http://my-domain.com/url/?http://www.google.com

脚本正在运行,但它没有重定向到外部网址,只有一条消息显示为您正在重定向到...页面,它只是在5秒内重新加载页面。

那么问题是什么?这是脚本还是.htaccess?

1 个答案:

答案 0 :(得分:1)

问题是查询字符串不是RewriteRule测试uri的一部分。

您可以使用:

RewriteEngine On
Options -MultiViews
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^url/$ /url.php?url=%1 [NC,L]