如何重写URL中使用PHP脚本正确

问题描述:

我有一个PHP脚本,重定向外部URL,这是脚本如何重写URL中使用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

脚本工作,但它不是重定向到外部URL,只是一个消息出现重定向是你正在重定向到...页面,它只是在5秒内重新加载页面。

那么,有什么问题呢?这是与脚本或.htaccess?

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

您可以使用:

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

仍然没有工作给我“403禁止错误” :(当脚本重定向到外部域 –

+0

它在你的脚本中的问题 – Croises

+1

是啊,我这么认为...反正谢谢:) –