AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 43695
Accepted
Lin
Lin
Asked: 2009-07-22 10:51:57 +0800 CST2009-07-22 10:51:57 +0800 CST 2009-07-22 10:51:57 +0800 CST

如何让网络服务器解析 php 文件中的 url?

  • 772

我不想让客户端解析 URL,而是让我的网络服务器这样做。所以理想情况下,我可以这样:

<a href="http://www.long-domain-name.com/">

进入这个:

<a href="http://domain/">

通过在我的 /etc/hosts 文件中添加一个条目,或者 DNS 魔术,或类似的东西。我正在运行 nginx。我有什么办法可以做到这一点?

谢谢!

domain-name-system internal-dns hosts
  • 5 5 个回答
  • 232 Views

5 个回答

  • Voted
  1. Best Answer
    Insyte
    2009-07-22T11:00:51+08:002009-07-22T11:00:51+08:00

    您似乎将“资格”与“分辨率”混淆了。

    解决方法是将名称转换为 IP 地址。客户绝对需要这样做。避免这种情况的唯一方法是使用 IP 地址创建 URL,如下所示: http://127.0.0.2/但这通常是个坏主意,而且在许多情况下是行不通的。

    资格正在扩大http://example/到http://www.example.com/。这在技术上也需要由客户完成。但是,如果您只想避免输入长名称,则可以使用服务器端包含将较短的内容扩展为完整的 URL。丑陋的黑客,但可行。

    如果您绝对不能忍受输入长 URL 的想法,可能最合乎逻辑的解决方法是编写一个 Makefile,通过 sed 运行您的源 HTML 以将短版本转换为长版本。

    • 3
  2. Francesco Abeni
    2009-07-22T13:08:22+08:002009-07-22T13:08:22+08:00

    正如其他人所说,您无法更改 DNS 解析。它发生在您的网络服务器完全参与之前。如果您只想为同一个域提供更短的 URL,您可以使用 Apache 和 mod_rewrite。

    例如,我自动将所有我的“example.com”重定向到“www.example.com”。您可以轻松接受对“mydomain.com”的所有请求并将其扩展为“www.my-domain-which-has-a-very-long-name.com”。

    显然,您必须为“mydomain.com”和“my-domain-which-has-a-very-long-name.com”注册和设置 DNS记录。

    • 2
  3. Will
    2009-07-22T10:58:41+08:002009-07-22T10:58:41+08:00

    无论如何,客户端仍然必须能够解析 DNS。

    解决它的唯一方法是,如果您的代码或其他东西物理地抓取页面本身,然后将其作为自己的页面发送给客户端。

    • 1
  4. crb
    2009-07-22T10:59:13+08:002009-07-22T10:59:13+08:00

    这听起来像是通常由反向代理完成的事情。

    考虑这个设置:

    • 客户端请求http://something.on.the.internet.com/foo
    • 代理服务器获取请求并获取http://internal/whatever/foo
    • 代理服务器将数据返回给客户端。

    规范的解决方案是 Apache 的mod_proxy,但我相信 nginx 也可以做到这一点。

    • 1
  5. cas
    2009-07-22T15:02:09+08:002009-07-22T15:02:09+08:00

    如果 www.long-domain-name.com URL 位于 www.long-domain-name.com 提供的页面中,那么您甚至不需要指定域。所有浏览器都会从它来自的同一站点获取不合格的链接。

    即使用相对于站点的 URL 而不是绝对的 URL 并替换:

    <a href="http://www.long-domain-name.com/">
    

    和:

    <a href="/">
    

    无论如何,这样做是个好主意,因为它可以很容易地将站点移动到不同的域名。强烈推荐,几乎是必不可少的,如果你想要像“dev.long-domain-name.com”->“testing.long-domain-name.com”->“www.long-domain-”这样的三阶段部署名称.com"

    在任何 Web 开发中,一个好的经验法则是尽可能避免使用绝对 URL。

    • 0

相关问题

  • 可以任意注册名字到同一个公网IP吗?

  • Linux 绑定服务器为 DHCP Windows 客户端提供地址,但不为 DHCP Linux 客户端提供地址

  • 如何使用 Windows Server 解析 http 域名

  • 动态更新 /etc/resolv.conf 中列出的解析器

  • 内部名称解析

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve