【问题标题】:Redirect to url within another url using .htaccess使用 .htaccess 重定向到另一个 url 中的 url
【发布时间】:2015-03-09 05:44:37
【问题描述】:

我有一个问题,我需要将用户重定向到 URL 中的 URL。

例如: 当用户访问网址时:api.example.com/redirect/www.google.com

我希望将用户重定向到:www.google.com

我已经尝试了一段时间,但没有成功。

【问题讨论】:

    标签: .htaccess redirect web


    【解决方案1】:

    您可能正在寻找类似的东西:

    主要 http 服务器配置的变体:

    RewriteEngine on
    RewriteRule ^/redirect/(.+)$ http://$1 [L,R=301]
    

    .htaccess 样式文件的变体:

    RewriteEngine on
    RewriteRule ^redirect/(.+)$ http://$1 [L,R=301]
    

    这显然需要在本地 http 服务器中提供重写模块。

    一般来说,您应该更喜欢将这些规则放入主服务器配置中,如果您有权访问它.htaccess 样式文件只有在您别无选择时才应使用。原因是这样的文件出了名的容易出错,难以调试并且真的减慢了 http 服务器的速度。


    更强大的方法是获取 url 的捕获部分并将其作为参数传递给服务器端的脚本。该脚本可以验证该部分,它是否是一个有效的“url”(为了简单起见......)。并且可能会发出头部请求以检查目标是否存在并且是否可用。只有这样它才会重定向。否则它会返回一个有意义的错误信息。

    【讨论】:

    • 这在 .htaccess 中无法正常工作,因为它在每个目录上下文中都不匹配。删除前导 / 或使其成为可选。 ^/?redirect/(.+)$ ...
    • @PanamaJack 你说的确实是对的。感谢您指出了这一点。我相应地修改了答案。
    猜你喜欢
    • 2013-08-04
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2014-07-25
    相关资源
    最近更新 更多