使用 DNS 记录重定向

Redirect using DNS records

所以我给自己弄了一个漂亮的 'short' 域 - abcd.st - 我将其纯粹用作重定向域,仅此而已。 NIC.st 网站比我想象的还要简陋。它使您能够添加 DNS 记录,但仅此而已。无法访问网络服务器或任何类似的东西。它确实使您能够更改 DNS 服务器,但我不知道这是否有帮助(这方面的新手)。

现在,我将使用我的添加创建小型 URL,看起来像 http://abcd.st/55e0c or http://abcd.st/45qs2s 你明白了

当用户访问这些小 URL 时,我需要将它们重定向到我的主网站上的特定操作 www.abcd。com/pages/view

使用 DNS 记录,我可以将所有流量盲目地重定向到我的主域 - www.abcd.com - 但我不确定如何

  1. 重定向到特定路径
  2. 假设无法将它们重定向到特定路径,那么有什么方法可以找到重定向域,然后在内部将它们再次转发到正确的操作?

编辑 - 这是我的 DNS 记录的样子

NAME                TTL        TYPE            ADDRESS

@                   1800       A               xxx.xxx.xxx.xxx

我正在使用 CakePHP 3.0.10

感谢帮助!

您不能使用 dns 重定向具有特定路径的 url。

我建议改用 php 重定向脚本。像这样。

index.php

<?php
$site = "http://www.abcd.com/";
$path = "";
switch ($_GET["url"])
{
    case "45qs2s":
        $path = "pages/view/1";
        break;
    case "55e0c":
        $path = "pages/view/2";
        break;
}
http_redirect($site . $path);
?>

.htaccess

RewriteEngine on 
RewriteRule ^index.php?url=(.*)$ 

这就是我最后做的事情

  1. 我让 DNS 记录指向我的主域。所以如果用户去 http://abcd.st, they would get redirected to http://www.abcd.com

  2. 我在 CakePHP 中配置了中央控制器,AppController检查引用域。如果引用域有 'abcd.st' 那么它知道这是一个简写 URL 重定向,然后将其推送到适当的控制器/操作

  3. 此外,我还使用$this->request->here提取了所有与原始网址一起发送的参数,并将其传递给新的控制器/动作

希望这对以后的人有所帮助...