【问题标题】:How to rewrite url to use php script properly如何重写 url 以正确使用 php 脚本
【发布时间】:2017-10-18 05:47:27
【问题描述】:

我有一个重定向外部 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,只显示一条消息 You are redirecting to ... page,它只是在 5 秒后重新加载页面。

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

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

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

    你可以使用:

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

    【讨论】:

    • 仍然不能给我“403禁止错误”:(当脚本重定向到外部域时!
    • 你的脚本有问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 2015-04-21
    相关资源
    最近更新 更多