除了历史原因,是否有理由在 URL 中包含“www”?
我应该从www.xyz.comtoxyz.com还是 from xyz.comto创建永久重定向www.xyz.com?你会推荐哪一个,为什么?
URL 始终具有以下格式:
<protocol>://<host>[:<port>]/[<path>][#<hash>]
Run Code Online (Sandbox Code Playgroud)
问题是 IPv6 使用冒号,就像端口和主机的分隔符一样,例如:
2001:db8:1f70::999:de8:7648:6e8
Run Code Online (Sandbox Code Playgroud)
但是,如果这是主机,并且我想通过端口 100 上的 HTTP 连接到它呢?
http://2001:db8:1f70::999:de8:7648:6e8:100/
Run Code Online (Sandbox Code Playgroud)
问题是最后一个冒号。由于用双冒号(在 1f70 和 999 之间)省略了零,因此不知道 ':100' 属于 IP 还是端口号。我们怎么知道这个?
显然它是一个 URL 缩短器。它在 Chrome 和 Firefox 中解决得很好。这如何成为有效的顶级域?
更新:对于那些说这是浏览器恶作剧的人,为什么:http://com./不带我去:http://www.com/?
而且,浏览器是否会从地址栏中的实际内容以外的其他地方向您发送响应?除了框架集和类似的东西,我认为浏览器非常努力地仅从地址栏中的站点向您发送内容,以帮助防范网络钓鱼。
我想要做的是以下内容:
我的域 xy.example.com 不再存在。因此,我想做一个简单的重定向到新域 abc.example.com。它应该是一个重定向,当有人在浏览器栏中输入http://xy.example.com/team.php时也有效- 比它应该重定向到http://abc.example.com/team.php
我已经尝试了一些东西,但它并没有真正奏效。我必须在 Apache 2 配置中放入什么?
http://.................1168951531
其中,当放入 chrome 时,预览到 URL http://69.172.200.235/,该URL重定向(通过外部服务器响应代码3XX)到www.test.com,但这超出了我试图弄清楚的范围。
像上面这样奇怪的 URL 如何解析为 IP 地址?这是格式规则吗?
当我浏览到这个 URL 时:http://localhost:8080/foo/%5B-%5Dserver ( nc -l 8080) 按原样接收它:
GET /foo/%5B-%5D HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
但是,当我通过 nginx (1.1.19) 代理此应用程序时:
location /foo {
proxy_pass http://localhost:8080/foo;
}
Run Code Online (Sandbox Code Playgroud)
通过 nginx 端口路由的相同请求转发路径解码:
GET /foo/[-] HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
GET 路径中的解码方括号导致目标服务器中的错误(HTTP 状态 400 - 路径中的非法字符...),因为它们未转义到达。
有没有办法禁用 URL 解码或将其编码回来,以便目标服务器在通过 nginx 路由时获得完全相同的路径?一些巧妙的 URL 重写规则?
可以app.mycoolname.local用于私有/内部 URL 吗?
我们有几个基于 Web 的应用程序,但它们是私有应用程序,不向公众公开。
我们一直在为其中一些使用“.net”,这没有意义,因为它们可能与互联网上的真实 URL 发生冲突。这还不是问题。
但是现在我有一组新的应用程序,我想使用“流行”名称来命名它们,这肯定会与 Internet 上的 URL 冲突。
我应该使用app.mycoolname.local吗?我现在以这种方式设置它,它似乎正在工作。我读过一些鼓励它的地方,但后来我看到了一些它不起作用的地方(Mac 上有些问题,但我们没有这些,所以 NBD)。
如果连接是通过 HTTPS 建立的,那么 URL 中包含的数据是否可以被视为安全?例如,如果用户单击电子邮件中指向https://mysite.com?mysecretstring=1234的链接,攻击者是否有可能从 URL 中获取“mysecretstring”?
我想确保用户www.mydomain.com即使通过 alias 到达mydomain.com。这样我就可以控制子域上的 cookie,这样 Google 就会看到一个域,而不是一大堆 URL。
我怎样才能用 apache 做到这一点?
我有一个 CMS 中干净 URL 的 URL 重写设置,我的 web.config 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Clean URLs" stopProcessing="true">
<match url="^([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="?id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
它基本上变成index.php?id=something为something清洁的网址。非常简单,而且效果很好。
在 CMS 中很常见,为了防止后端中断,每个子目录都需要<remove name="Clean URLs" />或<clear />在其 web.config 中,因此规则不会被继承。
有没有办法在父规则中指定它根本不应该被子规则继承,方法是将规则的范围限制在当前目录?类似的东西<rule name="Clean URLs" stopProcessing="true" inherit="no">将是史诗般的。
url ×10
redirect ×3
rewrite ×3
apache-2.2 ×2
domain ×2
http ×1
https ×1
iis ×1
iis-7 ×1
internal-dns ×1
ip ×1
ipv6 ×1
nginx ×1
security ×1
url-routing ×1
web.config ×1