2017-10-18 64 views
1

我有一個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?

回答

1

問題是查詢字符串不是RewriteRule測試URI的一部分。

您可以使用:

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

仍然沒有工作給我「403禁止錯誤」 :(當腳本重定向到外部域 –

+0

它在你的腳本中的問題 – Croises

+1

是啊,我這麼認爲...反正謝謝:) –